Esempio n. 1
0
 private static int GetWeaponIndexFromAddress(EDmgVsBoss weaponAddress)
 {
     if      (weaponAddress == EDmgVsBoss.U_DamageP)
         return 0;
     else if (weaponAddress == EDmgVsBoss.U_DamageH)
         return 1;
     else if (weaponAddress == EDmgVsBoss.U_DamageA)
         return 2;
     else if (weaponAddress == EDmgVsBoss.U_DamageW)
         return 3;
     else if (weaponAddress == EDmgVsBoss.U_DamageB)
         return 4;
     else if (weaponAddress == EDmgVsBoss.U_DamageQ)
         return 5;
     else if (weaponAddress == EDmgVsBoss.U_DamageF)
         return 6;
     else if (weaponAddress == EDmgVsBoss.U_DamageM)
         return 7;
     else if (weaponAddress == EDmgVsBoss.U_DamageC)
         return 8;
     else return -1;
 }
Esempio n. 2
0
        /// <summary>
        /// Do 3 damage for high-ammo weapons, and ammo-damage + 1 for the others
        /// Time Stopper will always do 1 damage.
        /// </summary>
        /// <param name="weapon"></param>
        /// <returns></returns>
        private static byte GetRoboDamagePrimary(Random r, EDmgVsBoss weapon)
        {
            // Flat 25% chance to do 2 extra damage
            byte damage = 0;
            double rExtraDmg = r.NextDouble();
            if (rExtraDmg > 0.75)
            {
                damage = 2;
            }

            if (weapon == EDmgVsBoss.U_DamageH)
                damage += (byte)(RWeaponBehavior.AmmoUsage[1] + 1);
            else if (weapon == EDmgVsBoss.U_DamageA)
                damage += (byte)(RWeaponBehavior.AmmoUsage[2] + 1);
            else if (weapon == EDmgVsBoss.U_DamageW)
                damage += (byte)(RWeaponBehavior.AmmoUsage[3] + 1);
            else if (weapon == EDmgVsBoss.U_DamageF)
                return 1;
            else if (weapon == EDmgVsBoss.U_DamageC)
                damage += (byte)(RWeaponBehavior.AmmoUsage[7] + 1);

            if (damage < 3) damage = 3;
            return damage;
        }