def Thunder_1(self): self.NumberTimes -= 1 if self.NumberTimes < 0: self.CurrentUpdate = None self.Space.SoundSpace.PlayCue("Thunder") sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, self.ActiveCD) Action.Call(sequence, self.ActiveThunder) return self.Owner.Sprite.Color = Vec3(self.Owner.Sprite.Color.x, self.Owner.Sprite.Color.y, self.Owner.Sprite.Color.z, self.Alpha_Upper) sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, random.uniform(self.CD_Lower, self.CD_Upper)) Action.Call(sequence, self.Thunder_2)
def Ending(self): self.Owner.SphericalParticleEmitter.Size *= 1.05 self.Owner.SphericalParticleEmitter.EmitRate = 35 if self.Owner.SphericalParticleEmitter.Size > 25: d = self.DestinationObject.Transform.WorldTranslation z = self.Player.Transform.WorldTranslation.z self.Player.Transform.WorldTranslation = Vec3(d.x, d.y, z) z = self.camera.Transform.WorldTranslation.z self.camera.Transform.WorldTranslation = Vec3(d.x, d.y, z) def showit(): self.camera.CameraFunction.SetCameraFade(self.ShadingColor,self.ShadingColor*Vec4(1,1,1,0),0.005,0) self.Player.RigidBody.Kinematic = False self.CurrentUpdater = self.Fading if self.ExtendedDelay: self.camera.CameraFunction.SetCameraFade(self.ShadingColor, self.ShadingColor,2,0) self.Owner.DestroyInterface.Destroy() seq = Action.Sequence(self.Player.Actions) Action.Delay(seq, 2) Action.Call(seq, showit) else: self.camera.CameraFunction.SetCameraFade(self.ShadingColor, self.ShadingColor*Vec4(1,1,1,0),0.0025,0) self.CurrentUpdater = self.Fading self.Player.RigidBody.Kinematic = False self.Owner.DestroyInterface.Destroy()
def ExplodeState(self, UpdateEvent): self.Owner.SphericalParticleEmitter.Size -= UpdateEvent.Dt * 2.5 if(self.Owner.SphericalParticleEmitter.Size <= 0.1): self.CurrentUpdate = 0 sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, 0.5) Action.Call(sequence, self.EndState)
def OnCollision(self, CollisionEvent): if self.triggerable: if CollisionEvent.OtherObject.CanTrigger and CollisionEvent.OtherObject.CanTrigger.Active: self.triggerable = False self.Trigger() self.Owner.SoundEmitter.PlayCue("ButtonCue") if self.TriggerDuration: self.Owner.SoundEmitter.PlayCue("TickCue") seq = Action.Sequence(self.Owner.Actions) def Untrigger(): self.Trigger(False) self.Owner.SoundEmitter.Stop() self.Owner.SoundEmitter.PlayCue("WallEnterCue") def TurnTriggerable(): self.triggerable = True Action.Delay(seq, .5) Action.Call(seq, TurnTriggerable) Action.Delay(seq, self.TriggerDuration) Action.Call(seq, Untrigger)
def TeleportThis(self, target): if self.NextLevel.Name != "DefaultLevel": self.Space.FindObjectByName("Camera").CameraFunction.SetCameraFade( Vec4(1, 1, 1, 0), Vec4(1, 1, 1, 1), .03, 0) sequence = Action.Sequence(self.Owner.Actions) ls = self.Space.FindObjectByName("LevelSettings").LevelStart if ls: hm = ls.HUDManager hm.CacheSkills() Action.Delay(sequence, 1.5) Action.Call(sequence, lambda: self.Space.LoadLevel(self.NextLevel)) elif self.Teleport: camera = self.Space.FindObjectByName("Camera") dest = self.Teleport.Transform.Translation ct = camera.Transform.Translation pt = target.Transform.Translation #camera.CameraFunction.SetCameraFade(Vec4(0,0,0,1),Vec4(0,0,0,0),.03,0) #camera.Transform.Translation = VectorMath.Vec3(dest.x, dest.y,ct.z) target.Transform.Translation = VectorMath.Vec3( dest.x, dest.y, pt.z)
def FreezeThem(self, poss): def FreezeHelper(target): if not target.FreezeAnimReceiver.IsActivated(): target.FreezeAnimReceiver.Freeze() ice = self.Space.CreateAtPosition( "IceParticle", target.Transform.WorldTranslation) ice.TimedDeath.Active = True ice.SphericalParticleEmitter.EmitRate = 3 ice.SphericalParticleEmitter.EmitCount = 1 ice.SphericalParticleEmitter.ResetCount() for pair in poss: target = self.RecArray[pair[1]][pair[0]] FreezeHelper(target) if self.CreateWaterRing: for pair in poss: if pair in self.cache_ring: FreezeHelper(self.cache_ring[pair]) if pair in self.cache_ring2: FreezeHelper(self.cache_ring2[pair]) self.cache_ring2[ pair].Transform.Translation -= self.curious_offset nextset = set(sum([self.GetNeighbor(pair) for pair in poss], tuple())) nextset -= self.frozen_set self.frozen_set.update(nextset) if nextset: seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq, 0.1) Action.Call(seq, self.FreezeThem, (nextset, ))
def E1_ActivateLogo(self): if self.Camera.CameraFunction.FadeDone: self.CurrentFunction = None self.Camera.ThunderGenerator.ActivateThunder() sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, self.E1ToE2Delay) Action.Call(sequence, self.GoToE2)
def Respawn(self, target): self.Owner.Actions.Clear() seq = Action.Sequence(self.Owner) seq = Action.Sequence(self.Owner) Action.Delay(seq, self.RespawnDelay) Action.Call(seq, self.PerformRespawn, (target, ))
def Destroyed(self): if self.burnanim: self.burnanim.DetachRelative() seq = Action.Sequence(self.burnanim) self.burnanim.SphericalParticleEmitter.EmitRate = 0 Action.Delay(seq, 1) Action.Call(seq, lambda: self.burnanim.Destroy)
def ShowOnce(self, select): self.ShowTarget(select) self.seq.Cancel() self.seq = Action.Sequence(self.Owner.Actions) Action.Delay(self.seq,2) Action.Call(self.seq, lambda:self.ShowTarget(None))
def E2_CheckAnimatorEnd(self): if not self.Logo.Animator.Active: self.CurrentFunction = None self.Space.SoundSpace.PlayCue("RavenCue") sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, self.LogoDisplayDelay) Action.Call(sequence, self.GoToE3)
def Initialize(self, initializer): Zero.Connect(self.Owner, Events.CollisionStarted, self.OnCollision) #Zero.Connect(self.Owner, "WeatherDestory", self.OnWeatherDestory) sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, self.MaxLife) Action.Call(sequence, self.Death)
def Test(self): self.Max = self.MaxRange + random.uniform(0, self.MaxVariation) self.Owner.SphereCollider.Radius = self.Max sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, random.uniform(self.MaxTimeMinVar, self.MaxTimeMaxVar)) Action.Call(sequence, self.Test)
def OpenDoor(self): self.Owner.Sprite.SpriteSource = self.DoorTable.FindResource("Black") self.Space.FindObjectByName("Camera").CameraFunction.SetCameraFade( Vec4(1, 1, 1, 0), Vec4(1, 1, 1, 1), .03, 0) sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, 1.5) Action.Call(sequence, lambda: self.Space.LoadLevel(self.NextLevel))
def SetHiderAlpha(self, final_alpha): c = self.Hider.Sprite.Color self.Hider.Sprite.Color = Vec4(c.x, c.y, c.z, c.a * 0.9 + final_alpha * 0.1) if abs(final_alpha - c.a) > 0.05: Action.Call(self.sequence, self.SetHiderAlpha, final_alpha) else: self.Hider.Sprite.Color = Vec4(c.x, c.y, c.z, final_alpha)
def Thunder_2(self): self.ThunderLayer.Sprite.Color = Vec3(self.ThunderLayer.Sprite.Color.x, self.ThunderLayer.Sprite.Color.y, self.ThunderLayer.Sprite.Color.z, self.Alpha_Lower) sequence = Action.Sequence(self.Owner.Actions) Action.Delay(sequence, random.uniform(self.CD_Lower, self.CD_Upper)) Action.Call(sequence, self.Thunder_1)
def Untrigger(): self.Trigger(False) self.Owner.SoundEmitter.Stop() self.Owner.SoundEmitter.PlayCue("DingCue") def TurnTriggerable(): self.triggerable = True Action.Delay(seq, .5) Action.Call(seq, TurnTriggerable)
def ReUntrigger(target): for ch in target.Collider.Contacts: if ch.OtherObject.PlayerController: target.Collider.Ghost = True Action.Delay(seq,0.05) Action.Call(seq, ReUntrigger, target) return target.Collider.Ghost = False
def OnCollision(self, CollisionEvent): CollisionEvent.OtherObject.RigidBody.Kinematic = True seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq,1) def Blacker(): self.Space.FindObjectByName("Camera").CameraFunction.SetCameraFade(VectorMath.Vec4(0,0,0,0),VectorMath.Vec4(0,0,0,1),0.15,0) self.Space.FindObjectByName("LevelSettings").LevelStart.HUDManager.HideBoxes() Action.Call(seq, Blacker) Action.Delay(seq,3) def DestroyAll(): self.Space.LoadLevel("MenuScreen") self.Space.FindObjectByName("LevelSettings").LevelStart.HUDManager.Space.Destroy() Action.Call(seq, DestroyAll) Zero.Disconnect(self.Owner, Events.CollisionStarted, self)
def OnCollision(self, CollisionEvent): if CollisionEvent.OtherObject.AbilityStatus: CollisionEvent.OtherObject.AbilityStatus.SwapPhysSkill("") CollisionEvent.OtherObject.AbilityStatus.SwapTreeSkill("") camera = self.Space.FindObjectByName("Camera") seq = Action.Sequence(self.Owner.Actions) camera.CameraFunction.SetCameraFade(Vec4(0, 0, 0, 0), Vec4(1, 0, 0, .9), .2, 0) Action.Delay(seq, .3) Action.Call(seq, lambda: camera.CameraFunction.SetCameraFade(Vec4(1, 0, 0, .9), Vec4(0, 0, 0, 0), .03, 0))
def Initialize(self, initializer): self.Teleporter = self.Space.CreateAtPosition("EnemySpawner", self.Owner.Transform.WorldTranslation) seq = Action.Sequence(self.Owner.Actions) def EnsureDestroyTeleport(): if not self.Owner.DestroyTeleport: self.Owner.AddComponentByName("DestroyTeleport") Action.Call(seq, EnsureDestroyTeleport) self.Teleporter.MonsterSpawner.RespawnDelay = self.Delay
def ExplodeState(self, UpdateEvent): #self.Owner.SphericalParticleEmitter.Size -= UpdateEvent.Dt * 10 #if self.Owner.SphericalParticleEmitter.Size <= 1: self.CurrentUpdate = None sequence = Action.Sequence(self.Owner) Action.Delay(sequence, 0.5) def SetState(): self.CurrentUpdate = self.EndState Action.Call(sequence, SetState)
def Test(self): self.Max = self.MaxRange + random.uniform(0, self.MaxVariation) self.Owner.SphereCollider.Radius = self.Max self.LightStart.Min = self.Min self.LightStart.Max = self.Max self.LightStart.Source = self.Owner self.LightStart.Center = self.Owner.Transform.Translation Action.Delay(self.sequence, random.uniform(self.MaxTimeMinVar, self.MaxTimeMaxVar)) Action.Call(self.sequence, self.Test)
def Initialize(self, initializer): self.hudmanager = self.Space.FindObjectByName( "LevelSettings").HUDManager self.hudmanager.RegisterScoreObserver(self.OnUpdateScore) if self.RegisterTo: self.RegisterTo.ValuePresenter.RegisterObserver(self.Owner) self.EnsureObservers() seq = Action.Sequence(self.Owner.Actions) Action.Call(seq, lambda: self.OnUpdateScore(0))
def BeginShrink(self, UpdateEvent): self.cached_particle.SphericalParticleEmitter.EmitterSize *= 0.99 self.Space.FindObjectByName("Camera").CameraFunction.SetCameraShake( True, .35, True, .35, 0.1, 0) self.temp_counter += 1 if self.temp_counter > 10: self.temp_counter = 0 self.Space.FindObjectByName( "RandomYeller").RandomYeller.CreateOne() if self.cached_particle.SphericalParticleEmitter.EmitterSize.x < 2.5 and not self.shrink_enough: self.shrink_enough = True self.Space.FindObjectByName("Camera").CameraFunction.SetCameraFade( VectorMath.Vec4(1, 1, 1, 0), VectorMath.Vec4(1, 1, 1, 1), 0.05, 0) seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq, 2) Action.Call(seq, lambda: self.Space.LoadLevel("CreditLevel")) Action.Call( seq, lambda: self.Space.FindObjectByName("LevelSettings"). LevelStart.RemoveHUD())
def OnCollision(self, CollideEvent): if CollideEvent.OtherObject == self.Target: def DestroyIt(): self.Space.CreateAtPosition( "SoulHitEffect", self.Owner.Transform.WorldTranslation) self.Owner.Destroy() seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq, 0.1) Action.Call(seq, DestroyIt) Zero.Disconnect(self.Owner, Events.CollisionStarted, self)
def UpUpdate(self): self.Owner.Transform.Scale *= 1.02 if self.Owner.RigidBody.Velocity.y < 0: self.CurrentUpdate = self.WaitUpdate seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq, self.FlyingDelay) def ToDown(): self.CurrentUpdate = self.DownUpdate Action.Call(seq, ToDown)
def Test2(self): self.Min = self.MinRange + random.uniform(0, self.MinVariation) sequence = Action.Sequence(self.Owner.Actions) self.LightStart.Min = self.Min self.LightStart.Max = self.Max self.LightStart.Source = self.Owner self.LightStart.Center = self.Owner.Transform.Translation Action.Delay(self.sequence, random.uniform(self.MinTimeMinVar, self.MinTimeMaxVar)) Action.Call(self.sequence, self.Test2)
def OnLogicUpdate(self, UpdateEvent): #if(self.Start == True): #self.Owner.SoundEmitter.Volume = 1 #self.Owner.SoundEmitter.PlayCue("AllOnline") #self.Start = False sequence = Action.Sequence(self.Owner.Actions) if (self.CurrentHealth <= 0): self.CurrentHealth = 0 Position = self.Owner.Transform.WorldTranslation if (self.DeathSpawn == False): PivotBody = self.Owner.FindChildByName("BodyPivot") Body = self.Owner.FindChildByName("HeavyGunManBody") Weapon1 = self.Owner.FindChildByName("Look") Weapon2 = self.Owner.FindChildByName("GiantMiniGun1") Weapon3 = self.Owner.FindChildByName("GiantMiniGun2") Weapon4 = self.Owner.FindChildByName("GiantMiniGun3") PivotBody.RemoveComponentByName("HeavyGunManBody") Weapon1.RemoveComponentByName("Look") Weapon1.RemoveComponentByName("Look2") Weapon1.RemoveComponentByName("Look3") Weapon1.RemoveComponentByName("Look4") Weapon1.RemoveComponentByName("Look5") Weapon1.RemoveComponentByName("Look6") Weapon1.RemoveComponentByName("Look7") Weapon1.RemoveComponentByName("Look8") Weapon1.RemoveComponentByName("Look9") Weapon2.RemoveComponentByName("GiantMiniGun1") Weapon3.RemoveComponentByName("GiantMiniGun1") Weapon4.RemoveComponentByName("GiantMiniGun1") self.Owner.RemoveComponentByName("HeavyGunManController") self.Owner.Sprite.SpriteSource = "HeavyGunManIdle" Body.Sprite.SpriteSource = "HeavyGunManBody" if (self.LayDead is False): self.Owner.RigidBody.RotationLocked = False self.Owner.RigidBody.Velocity = Vector3(0, 0, 0) self.Owner.Transform.Rotation = Quaternion(0, 0, 1.5) PivotBody.Transform.WorldRotation = Quaternion(0, 0, 1.5) self.LayDead = True self.DeathSpawn = True Action.Delay(sequence, 5.0) Action.Call(sequence, self.OnDeath)
def OnCollision(self, CollisionEvent): if self.Active and CollisionEvent.OtherObject.CanTeleport: CollisionEvent.OtherObject.CanTeleport.Teleport(self.Owner) self.Active = False # set dumb duration seq = Action.Sequence(self.Owner.Actions) Action.Delay(seq, self.TeleportDelay) def Activate(): self.Active = True Action.Call(seq, Activate)