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; }
/// <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; }