public static Weapon Create(Fighter fighter, int slotId, WeaponData.WeaponDataEntry weaponData) { switch (weaponData.Type) { case WeaponData.WeaponType.MachineGun: return(new MachineGun(fighter, slotId, weaponData)); case WeaponData.WeaponType.Laser: return(new Laser(fighter, slotId, weaponData)); default: Debug.LogError($"Invalid weapon type {weaponData.Type}!"); return(null); } }
public override void Complete() { int winnerType = VoteHelper.GetWinner(_weaponTypeVotes); WeaponData.WeaponDataEntry weaponData = DataManager.Instance.GameData.Weapons.Entries.GetOrDefault(winnerType); if (null == weaponData) { return; } Weapon = WeaponFactory.Create(Fighter, SlotData.Id, weaponData); if (null != Weapon) { Weapon.Strength = _weaponTypeVotes[winnerType]; } }
protected Weapon(Fighter fighter, int slotId, WeaponData.WeaponDataEntry weaponData) { Fighter = fighter; SlotId = slotId; WeaponData = weaponData; }
public MachineGun(Fighter fighter, int slotId, WeaponData.WeaponDataEntry weaponData) : base(fighter, slotId, weaponData) { }
public Laser(Fighter fighter, int slotId, WeaponData.WeaponDataEntry weaponData) : base(fighter, slotId, weaponData) { }