public void ActivateFunction(Dude d) { if (SoulButton==0 && _currentCDTime <= 0) { switch (Function) { case "boost": d.BoostTime = 5000; _currentCDTime = _actualCDTime; break; case "shield": d.ShieldTime = 10000; _currentCDTime = _actualCDTime; break; default: if (d.Weapon.GetType() == typeof(Weapons.Sword)) { d.GiveWeapon(Function); _currentCDTime = _actualCDTime; } break; } } if(SoulButton>0 && _currentCDTime >= _actualCDTime) { switch (Function) { case "haste": GameSession.Instance.ButtonController.HasteTime = 30000; break; case "meteors": GameSession.Instance.SoulController.AirStrike(GameSession.Instance.Team1ClientType == GameClientType.Human ? 0 : 1); break; case "elite": GameSession.Instance.SoulController.EliteSquad(GameSession.Instance.Team1ClientType == GameClientType.Human ? 0 : 1); break; } if (GameSession.Instance.Team1ClientType == GameClientType.Human) GameSession.Instance.Team1SoulCount -= (int)_actualCDTime * SoulButton; if (GameSession.Instance.Team2ClientType == GameClientType.Human) GameSession.Instance.Team2SoulCount -= (int)_actualCDTime * SoulButton; } }
private void ActivateFunction(AIAction a, Dude d) { if (a.CurrentCooldown <= 0) { a.CurrentCooldown = a.MaxCooldown; switch (a.Function) { case "boost": d.BoostTime = 5000; break; case "shield": d.ShieldTime = 10000; break; default: d.GiveWeapon(a.Function); break; } } }
private void PropogateShield(Dude d) { if (!d.Active) return; foreach (Dude t in Dudes) { if (!t.Active) continue; if (d.Team != t.Team) continue; if ((d.Position - t.Position).Length() <= 300) t.IsShielded = true; } }
public void LoadContent(ContentManager content) { _texDude = content.Load<Texture2D>("dude"); for (int i = 0; i < MAX_DUDES; i++) Dudes[i] = new Dude(_texDude); }
public Dude EnemyInRange(Dude owner, float range, bool checkLOS) { Dude returnDude = null; foreach (Dude d in Dudes) { if (!d.Active) continue; if (owner == d) continue; if (owner.Team == d.Team) continue; if (owner.Position.X > d.Position.X && owner.PathDirection == 1) continue; if (owner.Position.X < d.Position.X && owner.PathDirection == -1) continue; float distance = (owner.Position - d.Position).Length(); if (distance > range) continue; if (checkLOS && distance>20) { Vector2 testVect = owner.WeaponPosition; float amount = 0f; while ((testVect - d.HitPosition).Length() > 2f) { if (GameSession.Instance.Map.TryGetPath((int)testVect.X, (int)testVect.Y) - 10 < testVect.Y) break; testVect = Vector2.Lerp(owner.WeaponPosition, d.HitPosition, amount); amount += 0.01f; } if ((testVect - d.HitPosition).Length() <= 2f) returnDude = d; } else returnDude = d; } return returnDude; }
public void DudeClicked(Dude d) { foreach (Button b in Buttons) if (b.IsSelected) b.ActivateFunction(d); }