Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- verb/attackc()
- set name="attack"
- //Initial_Check
- if(Casting) return
- if(icon_state=="sit") { icon_state=""; MED=0 }
- if(!CanAttack) return
- CanAttack=0
- var/mob/Enemy
- //Target_Assignment
- for(Enemy in get_step(src,dir))
- if(target != Enemy) target = Enemy
- //Target_Check
- if(target in view(1)) { dir = get_dir(src,target); Enemy = target }
- //Target_Attack
- if(Enemy in get_step(src,dir))
- if((Enemy.ATTACKABLE) && (Enemy.Shielded==0))
- //PVP_Check
- if((Enemy.client) || (istype(Enemy,/mob/NPC/Pet)) )
- if((PVP==0) || (Enemy.PVP==0))
- //PVP not possible due to a player's PVP settings.
- if(dmgDelay()) return
- if(lowertext(Enemy.name) == "background")
- if(Enemy.type in list(/mob/rock, /mob/bush, /mob/tree)) Drop_Shit(Enemy)
- if(dmgDelay()) return
- //Re-Target. Why? Who knows? gg Johan
- Target(src)
- var
- hitrate=0
- 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)))
- if(Level<3) dmg+=10
- switch(WeaponType)
- if("Hand2Hand") { hitrate= ((0.66) * (HandtoHandlvl +5)) + 33 ; HandtoHandcounter++ }
- if("Piercing") { hitrate= ((0.66) * (Piercinglvl +5)) + 33 ; Piercingcounter++ }
- if("Bashing") { hitrate= ((0.66) * (Bashinglvl +5)) + 33 ; Bashingcounter++ }
- if("Slicing") { hitrate= ((0.66) * (Slicinglvl +5)) + 33 ; Slicingcounter++ }
- if("Crushing") { hitrate= ((0.66) * (Crushinglvl +5)) + 33 ; Crushingcounter++ }
- if("Missile") { hitrate= ((0.66) * (Missilelvl +5)) + 33 ; Missilecounter++ }
- skillcheck(src)
- if(prob(round(hitrate)))
- if(dmg>0)
- src<<sound('Playeratt.wav',0)
- if(prob(1)) dmg+=rand(dmg/2,dmg*2)
- F_damage(Enemy,round(dmg),"#f00")
- Weapon_Effect(src)
- Enemy.target=src
- if(!Enemy.client)
- Enemy.WALKING =0
- Enemy.WALKINGTICK =0
- walk(Enemy,0)
- if(!Enemy.FIZO) {FIZO=1; spawn(1) {Enemy.Follow(Enemy)}}
- Enemy.HP-=dmg
- ArmorEffect(Enemy)
- Update(Enemy)
- Death(src,Enemy)
- else
- dmg=0
- if(dmg==0) { src<<sound('miss.wav'); new/obj/miss(Enemy.loc) }
- if(src.dmgDelay()) return
- if(src.dmgDelay()) return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement