示例#1
0
    def __launch(self, equipment, position, duration):
        def postloadSetup(go):
            go.addComponent(equipment)
            go.createComponent(GenericComponents.RemoveGoDelayedComponent,
                               duration)

        CGF.loadGameObject(equipment.usagePrefab, self.entity.spaceID,
                           position, postloadSetup)
    def loadPostEffect(cls, postEffectTarget):
        if postEffectTarget is None or not postEffectTarget.isValid():
            _logger.warning(
                'postEffectTarget is not provided in HealthRestoreAbility Component'
            )
            return
        else:

            def postloadSetup(postEffectGO):
                postEffectGO.createComponent(
                    AdaptationHealthRestoreEffectArea,
                    teamMateRestoringRadius=cls.getEquipment(
                    ).teamMateRestoringRadius)

            transformComponent = postEffectTarget.findComponentByType(
                GenericComponents.TransformComponent)
            CGF.loadGameObject(cls.getEquipment().posteffectPrefab,
                               postEffectTarget.spaceID,
                               transformComponent.worldPosition, postloadSetup)
            return
    def __spawn(self, spawner, who):
        if spawner.attachToEntered:

            def _onLoaded(gameObject):
                import Vehicle
                h = CGF.HierarchyManager(self.spaceID)
                vehicleGo = h.getTopMostParent(who)
                vehicle = vehicleGo.findComponentByType(Vehicle.Vehicle)
                appearance = vehicle.appearance
                appearance.undamagedStateChildren.append(gameObject)
                gameObject.createComponent(
                    GenericComponents.RedirectorComponent, who)
                gameObject.createComponent(
                    GenericComponents.DynamicModelComponent, vehicle.model)

            CGF.loadGameObjectIntoHierarchy(spawner.prefabPath, who,
                                            Math.Vector3(0, 0, 0), _onLoaded)
            return
        area = spawner.areaToSpawn()
        transform = spawner.transform()
        if not area:
            return
        _logger.debug('TestPrefabSpawner. Create prefab = %s' %
                      spawner.prefabPath)
        u = random.random()
        yaw = 2 * math.pi * u
        pos = Math.Vector3(
            math.sin(yaw) * area.radius, 0,
            math.cos(yaw) * area.radius)
        pos.y = random.random() * area.height
        pos += transform.worldPosition

        def randomizeDestructionTime(go):
            remove = go.findComponentByType(
                GenericComponents.RemoveGoDelayedComponent)
            remove.delay = 1 + random.random() * 9

        CGF.loadGameObject(spawner.prefabPath, self.spaceID, pos,
                           randomizeDestructionTime)
 def __init__(self):
     super(ArenaInfoDeathZonesComponent, self).__init__()
     prefab = 'content/CGFPrefabs/steel_hunter/death_zones_rules.prefab'
     CGF.loadGameObject(prefab, self.entity.spaceID, Math.Vector3(0, 0, 0))
     self.visibilityMskZones = [0 for _ in enumerate(DEATH_ZONE_IDS)]
     self.updatedZones = []