Advertisement
Guest User

Untitled

a guest
Feb 29th, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.30 KB | None | 0 0
  1. verb/attackc()
  2. set name="attack"
  3. //Initial_Check
  4. if(Casting) return
  5. if(icon_state=="sit") { icon_state=""; MED=0 }
  6. if(!CanAttack) return
  7. CanAttack=0
  8. var/mob/Enemy
  9. //Target_Assignment
  10. for(Enemy in get_step(src,dir))
  11. if(target != Enemy) target = Enemy
  12. //Target_Check
  13. if(target in view(1)) { dir = get_dir(src,target); Enemy = target }
  14. //Target_Attack
  15. if(Enemy in get_step(src,dir))
  16. if((Enemy.ATTACKABLE) && (Enemy.Shielded==0))
  17. //PVP_Check
  18. if((Enemy.client) || (istype(Enemy,/mob/NPC/Pet)) )
  19. if((PVP==0) || (Enemy.PVP==0))
  20. //PVP not possible due to a player's PVP settings.
  21. if(dmgDelay()) return
  22. if(lowertext(Enemy.name) == "background")
  23. if(Enemy.type in list(/mob/rock, /mob/bush, /mob/tree)) Drop_Shit(Enemy)
  24. if(dmgDelay()) return
  25. //Re-Target. Why? Who knows? gg Johan
  26. Target(src)
  27. var
  28. hitrate=0
  29. dmg = ((Power + AddedPower) - (Enemy.Guard + Enemy.AddedGuard)) + rand(-0.2*((Power+AddedPower)-(Enemy.Guard+Enemy.AddedGuard))+(0.1*Power),0.2*((Power+AddedPower)-(Enemy.Guard+Enemy.AddedGuard))+(0.1*(Power+AddedPower)))
  30. if(Level<3) dmg+=10
  31. switch(WeaponType)
  32. if("Hand2Hand") { hitrate= ((0.66) * (HandtoHandlvl +5)) + 33 ; HandtoHandcounter++ }
  33. if("Piercing") { hitrate= ((0.66) * (Piercinglvl +5)) + 33 ; Piercingcounter++ }
  34. if("Bashing") { hitrate= ((0.66) * (Bashinglvl +5)) + 33 ; Bashingcounter++ }
  35. if("Slicing") { hitrate= ((0.66) * (Slicinglvl +5)) + 33 ; Slicingcounter++ }
  36. if("Crushing") { hitrate= ((0.66) * (Crushinglvl +5)) + 33 ; Crushingcounter++ }
  37. if("Missile") { hitrate= ((0.66) * (Missilelvl +5)) + 33 ; Missilecounter++ }
  38. skillcheck(src)
  39. if(prob(round(hitrate)))
  40. if(dmg>0)
  41. src<<sound('Playeratt.wav',0)
  42. if(prob(1)) dmg+=rand(dmg/2,dmg*2)
  43. F_damage(Enemy,round(dmg),"#f00")
  44. Weapon_Effect(src)
  45. Enemy.target=src
  46. if(!Enemy.client)
  47. Enemy.WALKING =0
  48. Enemy.WALKINGTICK =0
  49. walk(Enemy,0)
  50. if(!Enemy.FIZO) {FIZO=1; spawn(1) {Enemy.Follow(Enemy)}}
  51. Enemy.HP-=dmg
  52. ArmorEffect(Enemy)
  53. Update(Enemy)
  54. Death(src,Enemy)
  55. else
  56. dmg=0
  57. if(dmg==0) { src<<sound('miss.wav'); new/obj/miss(Enemy.loc) }
  58. if(src.dmgDelay()) return
  59. if(src.dmgDelay()) return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement