// calculates the damage dealt by currentPlayer to targetPlayer // takes the base damage and its multiplier (derived from the weapon types) into account float CalculateDamage(PlayerProperties targetPlayer) { Weapon[] matchingWeapons = WeaponDefinitions.GetWeapon(player.weapon, player.rowPosition); if (matchingWeapons.Length > 0) { int baseDamage = Int16.Parse(matchingWeapons[0].power); float multiplier = GetMultiplier(player.weapon, targetPlayer.weapon); return(baseDamage * multiplier); } else { return(0f); } }
GameObject SpawnNewWeapon(PhaseHandler.RowPosition rowPosition, WeaponDefinitions.WeaponType weaponType, Color color) { // load a gameobject with the correct prefab Weapon[] matchingWeapons = WeaponDefinitions.GetWeapon(weaponType, rowPosition); if (matchingWeapons.Length > 0) { string assetPath = matchingWeapons[0].asset; GameObject newWeapon = LoadNewWeapon(assetPath, new Vector3(0.3f, 0.3f, 0.3f), color); return(newWeapon); } else { // no matching weapon type was found throw new InvalidOperationException(); } }