public ScriptRunner(Script script, Battle battle, PartyMember actor, PartyMember target, ScriptRunnerMode mode = ScriptRunnerMode.Normal) { this.script = script; scriptActionIndex = 0; this.battle = battle; this.actor = actor; this.target = target; time = 0.0f; nestedScriptRunners = new List<NestedScriptRunner>(); this.mode = mode; blocked = false; }
public Trap(Sprite sprite, Vector2 position, Attributes attributes, WeaponData weaponData, PartyMember setter, Battle battle) : base(attributes) { if (attributes == null) throw new Exception("Attributes cannot be null"); if (setter == null) throw new Exception("PartyMember setter cannot be null"); if (battle == null) throw new Exception("Battle cannot be null"); this.setter = setter; this.battle = battle; Data = weaponData; entity = new Entity(sprite, position); entity.RenderShadow = true; entity.UpdateExtensions.Add(new UpdateExtension((updateExtension, delta) => Update(delta))); Scene.AddEntity(entity); }
protected BattleState(Battle battle) { if (battle == null) throw new Exception("Battle cannot be null"); Battle = battle; }
public static void AddExplosion(Vector2 position, Battle battle) { if (battle == null) throw new Exception("Battle cannot be null"); TextureData cloudTextureData = ResourceManager.GetTextureData("particles/cloud_1"); Scene.AddEntity(new ParticleEffect(position, Color.Red, 12, cloudTextureData, 800.0f, 500.0f, 0.8f, 0.6f, true)); Scene.AddEntity(new ParticleEffect(position, Color.Orange, 12, cloudTextureData, 800.0f, 500.0f, 0.8f, 0.6f, true)); Scene.AddEntity(new ParticleEffect(position, Color.White, 12, cloudTextureData, 800.0f, 500.0f, 0.8f, 0.6f, true)); battle.Camera.Shake(new Vector2(4.0f), 0.1f); battle.SetCameraUpdateDelay(1.0f); }
public static ParticleEffect AddSmokePuff(Vector2 position, Battle battle) { if (battle == null) throw new Exception("Battle cannot be null"); ParticleEffect particleEffect = new ParticleEffect(position, Color.White, 20, ResourceManager.GetTextureData("particles/cloud_1"), 500.0f, 500.0f, 0.6f, 0.6f, true); Scene.AddEntity(particleEffect); battle.Camera.Shake(new Vector2(3.0f, 0.0f), 0.1f); return particleEffect; }
public void Kill(Battle battle) { if (BattleEntity != null) BattleEntity.Kill(); battle.GetPartyBattleLayoutForPartyMember(this).Try(pbl => pbl.RemovePartyMember(this)); battle.GetPartyForPartyMember(this).Try(pbl => pbl.RemovePartyMember(this)); }
public void ApplyStatusEffectsFromAttributes(PartyMember inflictor, Attributes attributes, Battle battle) { bool sameParty = battle.GetPartyForPartyMember(inflictor) == battle.GetPartyForPartyMember(this); StatusEffect statusEffect; switch (attributes.Status) { case Status.Poisonous: statusEffect = new StatusEffects.Poison(); break; case Status.Shocking: statusEffect = new StatusEffects.Paralysis(); break; case Status.Scary: statusEffect = sameParty || !inflictor.Alive ? null : new StatusEffects.Fear(inflictor); break; default: statusEffect = null; break; } if (statusEffect != null) AddStatusEffect(statusEffect); if (attributes.Affiliation == Affiliation.Doom && !sameParty && inflictor.Alive) AddStatusEffect(new StatusEffects.Doom(inflictor)); }