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"); }
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; } } }
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; } }
public PlayerHurtEffect(Player p, GameWorldArea area) { this.player = p; this.area = area; this.repetition = Repeat.Task(HurtPlayer).Each(1000); }