Example #1
0
    // 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);
        }
    }
Example #2
0
    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();
        }
    }