public bool Cast(int spellID, int cellID) { if (HaveSpell(spellID)) { if (this.Monster.CanCastSpell(spellID)) { var spell = this.Monster.Monster.OwnSpells.FirstOrDefault(x => x.SpellID == spellID); if (spell.Template.Engine.GetLevel(spell.Level).MaxPO >= MonsterFight.Map.PathfindingMaker.GetDistanceBetween(Monster.CellID, cellID)) { if (Monster.CurrentAP >= spell.Template.Engine.GetLevel(spell.Level).CostPA) { MonsterFight.CastSpell(Monster, spell, spell.Level, cellID); System.Threading.Thread.Sleep(1000); return(true); } else { return(false); } } else { return(false); } } else { return(false); } } else { return(false); } }
public int GetNearestCellForGoingToFighter(Fighter target, int baseCell, List <int> closedList) { int cell = -1; List <int> adjaCells = Engines.Pathfinding.GetJoinCell(baseCell, MonsterFight.Map.Map); int dist = 1000; int timeout = 0; foreach (int aCell in adjaCells) { if (MonsterFight.Map.IsAvailableCell(aCell) && MonsterFight.GetFighterOnCell(aCell) == null && !closedList.Contains(aCell)) { int fDist = MonsterFight.Map.PathfindingMaker.GetDistanceBetween(aCell, target.CellID); if (fDist < dist) { cell = aCell; dist = fDist; } } timeout += 1; if (timeout > 100) { break; } } if (cell == -1) { return(baseCell); } return(cell); }
public void AttackNeightboor() { int timeout = 0; reCast: if (timeout > 100) { return; } Fighter nearestFighter = GetNearestFighter(); foreach (Game.Spells.WorldSpell ownSpell in Monster.Monster.OwnSpells.FindAll(x => x.Template.Engine.GetLevel(x.Level).TypeOfSpell == Enums.SpellTypeEnum.ATTACK)) { if (ownSpell.Template.Engine.GetLevel(ownSpell.Level).MaxPO >= MonsterFight.Map.PathfindingMaker.GetDistanceBetween(Monster.CellID, nearestFighter.CellID)) { if (Monster.CurrentAP >= ownSpell.Template.Engine.GetLevel(ownSpell.Level).CostPA) { if (Monster.CanCastSpell(ownSpell.SpellID)) { MonsterFight.CastSpell(Monster, ownSpell, ownSpell.Level, nearestFighter.CellID); System.Threading.Thread.Sleep(1000); timeout++; goto reCast; } } } timeout++; if (timeout > 200) { break; } } }
public void Move() { string path = Engines.Pathfinding.CreateStringPath(Monster.CellID, Monster.Dir, NextMove, MonsterFight.Map); MonsterFight.PlayerWantMove(Monster, path); System.Threading.Thread.Sleep(500 * NextMove.Count); NextMove.Clear(); MonsterFight.PlayerEndMove(Monster); }
public IActionResult PutMonsterFight(int monsterId, int fightId, MonsterFight monsterFight) { if (monsterId != monsterFight.MonsterId && fightId != monsterFight.FightId) { return(Content("No Such Monster and Fight Found")); } DeleteMonsterFight(monsterId, fightId); return(PostMonsterFight(monsterFight)); }
public void BoostMe() { foreach (Game.Spells.WorldSpell ownSpell in Monster.Monster.OwnSpells.FindAll(x => x.Template.Engine.GetLevel(x.Level).TypeOfSpell == Enums.SpellTypeEnum.BOOST)) { if (Monster.CanCastSpell(ownSpell.SpellID) && Monster.CurrentAP >= ownSpell.Template.Engine.GetLevel(ownSpell.Level).CostPA) { MonsterFight.CastSpell(Monster, ownSpell, ownSpell.Level, Monster.CellID); System.Threading.Thread.Sleep(1000); } } }
public IActionResult PostMonsterFight(MonsterFight monsterFight) { if (monsterFightService.Create(monsterFight)) { return(Content("Monster Successfully Sent to Battle")); } else { return(BadRequest()); } }
private void DeleteMonsterBtn_Click(object sender, EventArgs e) { MonsterFight mf = GetMonsterFightFromSpecs(); if (mf != null) { MainForm.client.DeleteAsync("https://localhost:5001/api/monsterfight/" + mf.MonsterId + "/" + mf.FightId); } Thread.Sleep(80); PopulateTable(); }
public MonsterFight GetMonsterFightFromSpecs() { MonsterFight mf = null; var response = MainForm.client.GetStringAsync("monsters?name=" + MonsterCBox.Text).Result; var monster = JsonConvert.DeserializeObject <List <Monster> >(response).FirstOrDefault(); mf = new MonsterFight() { FightId = int.Parse(FightCBox.Text), MonsterId = monster.MonsterId }; return(mf); }
public bool Create(MonsterFight MonsterFight) { using (UnitOfWork unitOfWork = new UnitOfWork(context)) { var monsterFight = new MonsterFight() { MonsterId = MonsterFight.MonsterId, FightId = MonsterFight.FightId }; unitOfWork.MonsterFightRepo.Create(monsterFight); return(unitOfWork.Save()); } }
public bool Delete(int MonsterId, int FightId) { using (UnitOfWork unitOfWork = new UnitOfWork(context)) { MonsterFight result = unitOfWork.MonsterFightRepo.GetMFById(MonsterId, FightId); if (result == null) { return(false); } unitOfWork.MonsterFightRepo.Delete(result); return(unitOfWork.Save()); } }
public bool Update(MonsterFight monsterFight) { using (UnitOfWork unitOfWork = new UnitOfWork(context)) { var result = unitOfWork.MonsterFightRepo.GetAll().Where(x => x.MonsterId == monsterFight.MonsterId && x.FightId == monsterFight.FightId).FirstOrDefault(); if (result == null) { return(false); } result.MonsterId = monsterFight.MonsterId; result.FightId = monsterFight.FightId; unitOfWork.MonsterFightRepo.Update(result); return(unitOfWork.Save()); } }
private void AddMonsterBtn_Click(object sender, EventArgs e) { var response = MainForm.client.GetStringAsync("monsters?name=" + MonsterCBox.Text).Result; var monster = JsonConvert.DeserializeObject <List <Monster> >(response).FirstOrDefault(); int test = int.Parse(FightCBox.Text); var response1 = MainForm.client.GetStringAsync("fights/" + test).Result; var fight = JsonConvert.DeserializeObject <Fight>(response1); MonsterFight m = new MonsterFight { MonsterId = monster.MonsterId, FightId = fight.FightId, Monster = monster, Fight = fight }; MainForm.client.PostAsJsonAsync("https://localhost:5001/api/monsterfight", m); Thread.Sleep(80); PopulateTable(); }