public Player() { stClass = StatsFactory.GetRandom(); Name = "Plyr " + stClass.ToString(); Image = "41x24"; Stats = new EntityStatsContainer(stClass); Stats.Level = 4; Stats.updateAttributes(); Stats.FullHeal(); Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(StatClass.Default, 0)); Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(stClass, -1)); Stats.SkillsList = Stats.SkillsList.Intersect(Stats.SkillsList).ToList(); MyParty = new Party(); MyParty.Front = this; //Player starts in front of party }
public EnemyPrefab(int level) { stClass = StatsFactory.GetRandom(); Name = "Mns " + stClass.ToString(); //TODO: monster naming Image = "15x5"; //TODO: monster sprites Stats = new EntityStatsContainer(stClass); Stats.Level = 3; Stats.updateAttributes(); Stats.FullHeal(); OverworldAI = new DefaultOverworldAI(); CombatAI = new DefaultCombatAI(); MyParty = new Party(); MyParty.Front = this; Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(StatClass.Default, 1)); Stats.SkillsList.AddRange(SkillSetFactory.GetSkillsFor(stClass, -1)); Stats.SkillsList = Stats.SkillsList.Intersect(Stats.SkillsList).ToList(); canLink = true; }
internal void TryCombat(Party party, MapMovement direct) { var combat = Rock.Instance.GetService<CombatOverwatchService>() as CombatOverwatchService; Party with; WorldEntity ent = party.First(); //TODO: fix, make code safe for map bounds, do a thingy with get x/y co-ords and reuse and shit switch (direct) { case MapMovement.Up: with = _worldLocations["0x0"][ent.MyParty.X, ent.MyParty.Y - 1].Entity; if (with != null) { if (ent is Player) { combat.Start(party, with, true, false); } else { combat.Start(with, party, false, true); } } break; case MapMovement.Down: with = _worldLocations["0x0"][ent.MyParty.X, ent.MyParty.Y + 1].Entity; if (with != null) { if (ent is Player) { combat.Start(party, with, true, false); } else { combat.Start(with, party, false, true); } } break; case MapMovement.Left: with = _worldLocations["0x0"][ent.MyParty.X - 1, ent.MyParty.Y].Entity; if (with != null) { if (ent is Player) { combat.Start(party, with, true, false); } else { combat.Start(with, party, false, true); } } break; case MapMovement.Right: with = _worldLocations["0x0"][ent.MyParty.X + 1, ent.MyParty.Y].Entity; if (with != null) { if (ent is Player) { combat.Start(party, with, true, false); } else { combat.Start(with, party, false, true); } } break; } }