public BattleCommand GetNextAction(Player[] party, Enemy[] allies, ElementType[] fieldEffect) { if (pressTheAdvantage.CanUse(fieldEffect)) { var target = new Target { TheTarget = BehaviorHelpers.GetStrongestTarget(party), TargetType = TargetTypes.Single }; return CreateBattleCommand(target, pressTheAdvantage, CommandType.Ability); } if ((me.CurrentHP / (decimal)me.MaxHP) <= .5m && solarBeam.CanUse(fieldEffect)) { var target = new Target { TheTarget = BehaviorHelpers.GetWeakestTarget(party), TargetType = TargetTypes.Single }; return CreateBattleCommand(target, solarBeam, CommandType.Ability); } if (party.All(p => !p.IsDead) && cleave.CanUse(fieldEffect)) { var target = new Target { TargetType = TargetTypes.All }; return CreateBattleCommand(target, cleave, CommandType.Ability); } if (sliceAndDice.CanUse(fieldEffect)) { var target = new Target { TheTarget = BehaviorHelpers.GetRandomTarget(party), TargetType = TargetTypes.Single }; return CreateBattleCommand(target, sliceAndDice, CommandType.Ability); } return CreateBattleCommand(new Target { TheTarget = BehaviorHelpers.GetRandomTarget(party), TargetType = TargetTypes.Single }, Ability.ATTACK, CommandType.Attack); }
public Player Read() { var p = new Player(); int version = reader.ReadLine().ToInt(); switch (version) { case 1: p.Name = reader.ReadLine(); p.MaxHP = reader.ReadLine().ToInt(); p.CurrentHP = p.MaxHP; p.Level = reader.ReadLine().ToInt(); p.Exp = reader.ReadLine().ToInt(); p.Class = reader.ReadLine(); p.Speed = reader.ReadLine().ToInt(); p.Strength = reader.ReadLine().ToInt(); p.Will = reader.ReadLine().ToInt(); p.Endurance = reader.ReadLine().ToInt(); int abilityCount = reader.ReadLine().ToInt(); for (int i = 0; i < abilityCount; i++) { int abilityId = reader.ReadLine().ToInt(); p.AllAbilities[i] = AbilityManager.Instance.GetAbility(abilityId); } int equippedAbilityCount = reader.ReadLine().ToInt(); for (int i = 0; i < equippedAbilityCount; i++) { int abilityId = reader.ReadLine().ToInt(); p.EquippedAbilities[i] = AbilityManager.Instance.GetAbility(abilityId); } int equippedFinisherCount = reader.ReadLine().ToInt(); for (int i = 0; i < equippedFinisherCount; i++) { int abilityId = reader.ReadLine().ToInt(); p.EquippedFinishers[i] = AbilityManager.Instance.GetAbility(abilityId); } int weaponId = reader.ReadLine().ToInt(); p.Weapon = WeaponManager.Instance.GetWeapon(weaponId); break; default: break; } return p; }
protected override void OnPostDialog() { var golem = new Player("Rocky", 25); golem.Class = "Elemental"; golem.Level = 1; golem.Exp = 0; golem.Speed = 2; golem.Strength = 8; golem.Will = 3; golem.Endurance = 8; golem.Weapon = WeaponManager.Instance.GetWeapon(2); GameStateManager.Instance.GameData.Party[1] = golem; }
protected override void OnPostDialog() { var ghost = new Player("", 20); ghost.Class = "Sorcerer"; ghost.Level = 1; ghost.Exp = 0; ghost.Speed = 6; ghost.Strength = 2; ghost.Will = 8; ghost.Endurance = 5; ghost.Weapon = WeaponManager.Instance.GetWeapon(3); GameStateManager.Instance.GameData.Party[2] = ghost; }
public PlayerSerializer(Player player, StreamWriter writer) { this.player = player; this.writer = writer; }