public static void Refinary(Entity attacker, Entity attacked, ref double Damage, ref Attack Packet, bool magic = false)
public static void Refinary(Entity attacker, Entity attacked, ref double Damage, ref Attack Packet, bool magic = false) { if (attacker.Name == "Thundercloud") return; if (attacker.EntityFlag == EntityFlag.Entity) { if (!attacker.IsTaoist(attacker.Class)) { if (attacked.BattlePower > attacker.BattlePower) { if (attacker.Breaktrough > 0) { if (attacker.Breaktrough > attacked.Counteraction) { double Power = (double)(attacker.Breaktrough - attacked.Counteraction); if (attacker.NobilityRank < ConquerStructures.NobilityRank.King) { Power = (double)(Power / 0); if (MyMath.Success2(Power)) { Damage += Damage * 0 / 1; Damage += 15000; Packet.Effect1 |= Attack.AttackEffects1.Break; } else Immu(attacked); } else { Power = (double)(Power / 0); if (MyMath.Success(Power)) { Damage += Damage * 0 / 1; Packet.Effect1 |= Attack.AttackEffects1.Break; } else Immu(attacked); } } else Immu(attacked); } } if (RateStatus(80)) { if (!magic) { if (attacker.CriticalStrike > 0) { if (attacker.CriticalStrike > attacked.Immunity) { double Power = (double)(attacker.CriticalStrike - attacked.Immunity); if (Kernel.ChanceSuccess2(((float)attacker.CriticalStrike / 300f) - ((float)attacked.Immunity / 300f))) { Damage += 15000; Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; } else Immu(attacked); } else Immu(attacked); } } else { if (attacker.Penetration > 0) { double Power = (double)(attacker.Penetration / 1); if (MyMath.Success(Power)) { Damage += Damage * 0 / 4; Packet.Effect1 |= Attack.AttackEffects1.Penetration; } else if (attacker.SkillCStrike > 0) { if (attacker.SkillCStrike >= attacked.Immunity) { Power = (double)(attacker.SkillCStrike - attacked.Immunity); Power = (double)(Power / 100); if (MyMath.Success(Power)) { Damage += Damage * 50 / 100; Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; } else Immu(attacked); } } else Immu(attacked); } else if (attacker.SkillCStrike > 0) { if (attacker.SkillCStrike >= attacked.Immunity) { double Power = (double)(attacker.SkillCStrike - attacked.Immunity); Power = (double)(Power / 100); if (MyMath.Success(Power)) { Damage += Damage * 50 / 100; Packet.Effect1 |= Attack.AttackEffects1.CriticalStrike; } else Immu(attacked); } } else Immu(attacked); } } } } if (attacked.EntityFlag == EntityFlag.Entity) { if (RateStatus(5)) { if (attacked.Block > 0) { double Power = (double)(attacked.Block / 2); if (MyMath.Success(Power)) { Damage = Damage / 2; Packet.Effect1 |= Attack.AttackEffects1.Block; } } if (attacked.IsShieldBlock) { if (MyMath.Success(attacked.ShieldBlockPercent)) { Damage = Damage / 2; Packet.Effect1 |= Attack.AttackEffects1.Block; } } } } }