public void ResGenerate() { ResGen += ResPR; ResRem -= ResPR; while (ResRem >= 0) { fb.UnitProduce(5); } }
public void Update(int x, int y, int temp) { for (int i = 0; i < map.Units.Count; i++) { if (map.Units[i] is MeleeUnit) { MeleeUnit mu = (MeleeUnit)map.Units[i]; if (mu.Health <= mu.MaxHealth * 0.25) { mu.Move(r.Next(0, 4)); } else { (Unit closest, int distanceTo) = mu.Closest(map.Units); if (distanceTo <= mu.Attackrange) { mu.IsAttacking = true; mu.Combat(closest); } else { if (closest is MeleeUnit) { MeleeUnit closestMu = (MeleeUnit)closest; if (mu.Xpos > closestMu.Xpos) { mu.Move(0); } else if (mu.Xpos < closestMu.Xpos) { mu.Move(2); } else if (mu.Ypos > closestMu.Ypos) { mu.Move(3); } else if (mu.Ypos < closestMu.Ypos) { mu.Move(1); } } else if (closest is RangedUnit) { RangedUnit closestRu = (RangedUnit)closest; if (mu.Xpos > closestRu.Xpos) { mu.Move(0); } else if (mu.Xpos < closestRu.Xpos) { mu.Move(2); } else if (mu.Ypos > closestRu.Ypos) { mu.Move(3); } else if (mu.Ypos < closestRu.Ypos) { mu.Move(1); } } else if (closest is WizardUnit) { WizardUnit closestwu = (WizardUnit)closest; if (mu.Xpos > closestwu.Xpos) { mu.Move(0); } else if (mu.Xpos < closestwu.Xpos) { mu.Move(2); } else if (mu.Ypos > closestwu.Ypos) { mu.Move(3); } else if (mu.Ypos < closestwu.Ypos) { mu.Move(1); } } } } } else if (map.Units[i] is RangedUnit) { RangedUnit ru = (RangedUnit)map.Units[i]; (Unit closest, int distanceTo) = ru.Closest(map.Units); if (distanceTo <= ru.Attackrange) { ru.isAttacking = true; ru.Combat(closest); } else { if (closest is MeleeUnit) { MeleeUnit closestMu = (MeleeUnit)closest; if (ru.Xpos > closestMu.Xpos) { ru.Move(0); } else if (ru.Xpos < closestMu.Xpos) { ru.Move(2); } else if (ru.Ypos > closestMu.Ypos) { ru.Move(3); } else if (ru.Ypos < closestMu.Ypos) { ru.Move(1); } } else if (closest is RangedUnit) { RangedUnit closestRu = (RangedUnit)closest; if (ru.Xpos > closestRu.Xpos) { ru.Move(0); } else if (ru.Xpos < closestRu.Xpos) { ru.Move(2); } else if (ru.Ypos > closestRu.Ypos) { ru.Move(3); } else if (ru.Ypos < closestRu.Ypos) { ru.Move(1); } } else if (closest is WizardUnit) { WizardUnit closestwu = (WizardUnit)closest; if (ru.Xpos > closestwu.Xpos) { ru.Move(0); } else if (ru.Xpos < closestwu.Xpos) { ru.Move(2); } else if (ru.Ypos > closestwu.Ypos) { ru.Move(3); } else if (ru.Ypos < closestwu.Ypos) { ru.Move(1); } } } } else if (map.Units[i] is WizardUnit) { WizardUnit wu = (WizardUnit)map.Units[i]; (Unit closest, int distanceto) = wu.Closest(map.Units); if (distanceto <= wu.Attackrange) { wu.isAttacking = true; wu.Combat(closest); } else { if (closest is MeleeUnit) { MeleeUnit closestmu = (MeleeUnit)closest; if (wu.Xpos > closestmu.Xpos) { wu.Move(0); } else if (wu.Xpos < closestmu.Xpos) { wu.Move(2); } else if (wu.Ypos > closestmu.Ypos) { wu.Move(3); } else if (wu.Ypos < closestmu.Ypos) { wu.Move(1); } } else if (closest is RangedUnit) { RangedUnit closestru = (RangedUnit)closest; if (wu.Xpos > closestru.Xpos) { wu.Move(0); } else if (wu.Xpos < closestru.Xpos) { wu.Move(2); } else if (wu.Ypos > closestru.Ypos) { wu.Move(3); } else if (wu.Ypos < closestru.Ypos) { wu.Move(1); } } else if (closest is WizardUnit) { WizardUnit closestwu = (WizardUnit)closest; if (wu.Xpos > closestwu.Xpos) { wu.Move(0); } else if (wu.Xpos < closestwu.Xpos) { wu.Move(2); } else if (wu.Ypos > closestwu.Ypos) { wu.Move(3); } else if (wu.Ypos < closestwu.Ypos) { wu.Move(1); } } } } /*if(map.Buildings[i] is FactoryBuilding) * { * FactoryBuilding fb = (FactoryBuilding)map.Buildings[i]; * (Unit closest, int distanceTo) = fb.Closest(map.Units); * * if(distanceTo <= 2) * { * fb.Combat(closest); * } * }*/ } map.Display(GBMap, x, y); roundnum++; int genspeed = 5; temp++; if (temp == genspeed) { fb.UnitProduce(genspeed); } }