Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define ENERGYLOSSCOEF 5000
- /obj/particle
- name = "Particle"
- icon = 'Antimatter.dmi'
- var/energy = 1 //In watts
- var/penetrate = 0 //It penetrate?
- New(var/turf/E, energyQ)
- ..()
- if(energyQ > 0)
- energy = energyQ
- while(energy > 0)
- sleep(rand(0,3))
- step(src,dir)
- energy = max(energy - ENERGYLOSSCOEF, 0)
- if(energy <= 0)
- del(src)
- break
- Bump(var/atom/T)
- /*
- if(istype(T,/obj/machinery/EnergyConverter))
- var/obj/machinery/EnergyConverter/EC = T
- EC.GetParticle(src)
- return
- * */
- if(istype(T,/mob/living))
- OtherAction(T)
- if(istype(T,/obj))
- if(penetrate)
- loc = T.loc
- else
- switch(dir)
- if(NORTH)
- dir = SOUTH
- if(EAST)
- dir = WEST
- if(WEST)
- dir = EAST
- if(SOUTH)
- dir = NORTH
- energy = max(energy - ENERGYLOSSCOEF * 10, 0) //Epic fail
- proc/OtherAction(var/mob/target)
- return
- /obj/particle/photon
- name = "Photons"
- icon = 'Antimatter.dmi'
- icon_state = "Photons"
- penetrate = 0
- OtherAction(var/mob/living/carbon/target)
- target.adjustFireLoss(max(energy / 100,0))
- target.updatehealth()
- target << "\red \bold AARGHH!"
- /obj/particle/neutron
- name = "Neutrons"
- icon = 'Antimatter.dmi'
- icon_state = "Neutrons"
- penetrate = 1
- OtherAction(var/mob/living/carbon/target)
- target.radiation += energy / target.nutrition * 10 //Hunger? GTFO from neutrons
- target << "\blue You feel uneasy"
- target.updatehealth()
- /obj/particle/positron
- name = "Positron"
- icon = 'Antimatter.dmi'
- icon_state = "Positron"
- penetrate = 1
- OtherAction(var/mob/living/carbon/target)
- target.cloneloss += energy / 1000
- target << "\red You feel strange in your body"
- target.updatehealth()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement