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 = []