示例#1
0
 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)
示例#2
0
    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()
示例#3
0
 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)
示例#4
0
    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)
示例#5
0
    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)
示例#6
0
    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, ))
示例#7
0
 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)
示例#8
0
    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, ))
示例#9
0
 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)
示例#10
0
 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))
示例#11
0
 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)
示例#12
0
    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)
示例#13
0
 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)
示例#14
0
    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))
示例#15
0
    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)
示例#16
0
    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)
示例#17
0
 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)
示例#18
0
 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
示例#19
0
 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)
示例#20
0
 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))
示例#21
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
示例#22
0
    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)
示例#23
0
    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)
示例#24
0
    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))
示例#25
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())
示例#26
0
    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)
示例#27
0
    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)
示例#28
0
    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)
示例#30
0
    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)