void ClickTileOrUI(bool left) { var accepter = FindInputAccepter(); if (accepter == null) { if (unitCursor.HasFoundTile()) { AbstractAttack attack = null; if (left) { attack = new RoundAttack(unitCursor.GetSpawnPoint(false)); } else { attack = new StraightAttack(unitCursor.GetSpawnPoint(false)); } if (attack.GetComsumption() <= GameDataManager.Instance.UnitPower) { mainCharacter.AnimateAttack(); attack.Animate(unitCursor.GetSpawnPoint(false)); ObjectManager.Instance.WaveManager.enemies .Where(e => attack.IsInRange(e.transform.position)) .ToList() .ForEach(e => e.Damaged(attack.GetDamage())); GameDataManager.Instance.UnitPower -= attack.GetComsumption(); } } } else { accepter.Execute(); } }
public AbstractAttack CreateAttack(Vector3 pos, AttackType type) { AbstractAttack attack = null; switch (type) { case AttackType.Round: attack = new RoundAttack(pos); break; case AttackType.Straight: attack = new StraightAttack(pos); break; } return(attack); }
void Start() { Instance = this; MovementJoystick.ButtonDown += JoyStickDown; MovementJoystick.ButtonPressed += JoyStickDrag; MovementJoystick.ButtonUp += JoyStickUp; RotateJoystick.ButtonDown += RotateDown; RotateJoystick.ButtonPressed += RotatePressed; RotateJoystick.ButtonUp += RotateUp; Stats.HealthPoints = Stats.MaxHealthPoint; Agent.speed = Stats.HighSpeed; GameCamera.OnHit += CameraControllEvent; GameCamera.OnMobHit += OnMobTap; Stats.Energy = Stats.MaxEnergy; Skills[0] = new Rush(); Skills[1] = new RoundAttack(); Skills[2] = new Toss(); Skills[3] = new PentagoneAttack(); SkillPanel.Instance.SetButtonsSettings(); StartLocalPosition = Animator.gameObject.transform.localPosition; }