示例#1
0
 public static string CurrentZone()
 {
     if (GameWorld.Instance && Characters.Sein)
     {
         GameWorldArea area = GameWorld.Instance.WorldAreaAtPosition(Characters.Sein.Position);
         if (area != null)
         {
             return(area.AreaIdentifier);
         }
     }
     if (Scenes.Manager.CurrentScene != null)
     {
         string scene = Scenes.Manager.CurrentScene.Scene;
         if (SceneToZone.ContainsKey(scene))
         {
             return(SceneToZone[scene]);
         }
     }
     return("unknown");
 }
示例#2
0
        public void Enter(GameWorldArea area)
        {
            if (this.CurrentArea == null)
            {
                this.CurrentArea = area;

                if (this.CurrentArea != null)
                {
                    this.speedModifier = this.speedModifier * this.CurrentArea.SpeedModifier;

                    if (this.CurrentArea.DegenerationRatio > 0.0f)
                    {
                        this.states.HurtEffect = new PlayerHurtEffect(this, this.CurrentArea);
                        this.states.HurtEffect.Start();
                    }

                    this.sliding = this.CurrentArea.Slippery;
                }
            }
        }
示例#3
0
        public void Exit(GameWorldArea area)
        {
            if (this.CurrentArea != null)
            {
                this.CurrentArea   = null;
                this.speedModifier = this.speedModifier / area.SpeedModifier;

                if (this.states.HurtEffect != null)
                {
                    this.states.HurtEffect.Stop();
                    this.states.HurtEffect = null;
                }

                if (this.reachedDestination || area.Slippery)
                {
                    this.Stop();
                }

                this.sliding            = false;
                this.reachedDestination = false;
            }
        }
示例#4
0
 public PlayerHurtEffect(Player p, GameWorldArea area)
 {
     this.player     = p;
     this.area       = area;
     this.repetition = Repeat.Task(HurtPlayer).Each(1000);
 }