SHARE
TWEET

Untitled

a guest Mar 22nd, 2019 70 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.                 case BCardType.CardType.DrainAndSteal:
  3.                     if (ServerManager.RandomNumber() < FirstData)
  4.                     {
  5.                         return;
  6.                     }
  7.                     switch (SubType)
  8.                     {
  9.                         case (byte)AdditionalTypes.DrainAndSteal.LeechEnemyHP / 10 :
  10.                             int heal = 0;
  11.                             switch (session)
  12.                             {
  13.                                 case MapMonster toDrain when caster is Character drainer:
  14.                                     heal = drainer.Level * SecondData;
  15.                                     drainer.Hp = (int)(heal + drainer.Hp > drainer.HpLoad() ? drainer.HpLoad() : drainer.Hp + heal);
  16.                                     drainer.MapInstance?.Broadcast(drainer.GenerateRc((int)(heal + drainer.Hp > drainer.HpLoad() ? drainer.HpLoad() - drainer.Hp : heal)));
  17.                                     toDrain.CurrentHp -= heal;
  18.                                     drainer.Session.SendPacket(drainer.GenerateStat());
  19.                                     if (toDrain.CurrentHp <= 0)
  20.                                     {
  21.                                         toDrain.CurrentHp = 1;
  22.                                     }
  23.  
  24.                                     break;
  25.                                 case Character characterDrained when caster is Character drainerCharacter:
  26.                                     heal = drainerCharacter.Level * SecondData;
  27.                                     drainerCharacter.Hp = (int)(heal + drainerCharacter.Hp > drainerCharacter.HpLoad() ? drainerCharacter.HpLoad() : drainerCharacter.Hp + heal);
  28.                                     drainerCharacter.MapInstance?.Broadcast(drainerCharacter.GenerateRc((int)(heal + drainerCharacter.Hp > drainerCharacter.HpLoad() ? drainerCharacter.HpLoad() - drainerCharacter.Hp : heal)));
  29.                                     characterDrained.Hp -= heal;
  30.                                     characterDrained.Session.SendPacket(characterDrained.GenerateStat());
  31.                                     drainerCharacter.Session.SendPacket(drainerCharacter.GenerateStat());
  32.                                     if (characterDrained.Hp <= 0)
  33.                                     {
  34.                                         characterDrained.Hp = 1;
  35.                                     }
  36.  
  37.                                     break;
  38.                                 case Character characterDrained when caster is MapMonster drainerMapMonster:
  39.                                     heal = drainerMapMonster.Monster.Level * SecondData;
  40.                                     drainerMapMonster.CurrentHp = (heal + drainerMapMonster.CurrentHp > drainerMapMonster.MaxHp ? drainerMapMonster.MaxHp : drainerMapMonster.CurrentHp + heal);
  41.                                     drainerMapMonster.MapInstance?.Broadcast(drainerMapMonster.GenerateRc((heal + drainerMapMonster.CurrentHp > drainerMapMonster.MaxHp ? drainerMapMonster.MaxHp - drainerMapMonster.CurrentHp : heal)));
  42.                                     characterDrained.Hp -= heal;
  43.                                     characterDrained.Session.SendPacket(characterDrained.GenerateStat());
  44.                                     if (characterDrained.Hp <= 0)
  45.                                     {
  46.                                         characterDrained.Hp = 1;
  47.                                     }
  48.                                     break;
  49.                             }
  50.                             break;
  51.                         case (byte)AdditionalTypes.DrainAndSteal.LeechEnemyMP / 10:
  52.                             int mpDrain = 0;
  53.                             switch (session)
  54.                             {
  55.                                 case MapMonster toDrain when caster is Character drainer:
  56.                                     mpDrain = drainer.Level * SecondData;
  57.                                     drainer.Mp = (int)(mpDrain + drainer.Mp > drainer.MpLoad() ? drainer.MpLoad() : drainer.Mp + mpDrain);
  58.                                     toDrain.CurrentMp -= mpDrain;
  59.                                     drainer.Session.SendPacket(drainer.GenerateStat());
  60.                                     if (toDrain.CurrentMp <= 0)
  61.                                     {
  62.                                         toDrain.CurrentMp = 1;
  63.                                     }
  64.  
  65.                                     break;
  66.                                 case Character characterDrained when caster is Character drainerCharacter:
  67.                                     mpDrain = drainerCharacter.Level * SecondData;
  68.                                     drainerCharacter.Mp = (int)(mpDrain + drainerCharacter.Mp > drainerCharacter.MpLoad() ? drainerCharacter.MpLoad() : drainerCharacter.Mp + mpDrain);
  69.                                     characterDrained.Mp -= mpDrain;
  70.                                     characterDrained.Session.SendPacket(characterDrained.GenerateStat());
  71.                                     drainerCharacter.Session.SendPacket(drainerCharacter.GenerateStat());
  72.                                     if (characterDrained.Mp <= 0)
  73.                                     {
  74.                                         characterDrained.Mp = 1;
  75.                                     }
  76.  
  77.                                     break;
  78.                                 case Character characterDrained when caster is MapMonster drainerMapMonster:
  79.                                     // TODO: Add a MaxMp property to MapMonsters
  80.                                     /*
  81.                                     mpDrain = drainerMapMonster.Monster.Level * SecondData;
  82.                                     drainerMapMonster.CurrentMp = (mpDrain + drainerMapMonster.CurrentMp > drainerMapMonster.MaxHp ? drainerMapMonster.MaxHp : drainerMapMonster.CurrentHp + mpDrain);
  83.                                     drainerMapMonster.MapInstance?.Broadcast(drainerMapMonster.GenerateRc((mpDrain + drainerMapMonster.CurrentHp > drainerMapMonster.MaxHp ? drainerMapMonster.MaxHp - drainerMapMonster.CurrentHp : mpDrain)));
  84.                                     characterDrained.Hp -= mpDrain;
  85.                                     characterDrained.MapInstance?.Broadcast(characterDrained.GenerateStat());
  86.                                     if (characterDrained.Hp <= 0)
  87.                                     {
  88.                                         characterDrained.Hp = 1;
  89.                                     }*/
  90.                                     break;
  91.                             }
  92.                             break;
  93.                         default:
  94.                             break;
  95.                     }
  96.                     break;
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top