mirror of
https://github.com/PolarisSS13/Polaris.git
synced 2025-12-21 15:42:53 +00:00
- Removed support for the ONBACK and ONBELT flags.
- Replaced them with a whole range of inventory slot flags. These now govern whether an item can or can't be placed in a certain inventory slot. See setup.dm for information on the flags. These flags only affect humans tho, as humans are the only beings with an inventory to talk of. - Standardized some gun code and some other pieces of code as I came accross them. I hate indented variable definitions! This commit should not bring any change whatsoever to the game from a player's perspective. git-svn-id: http://tgstation13.googlecode.com/svn/trunk@3659 316c924e-a436-60f5-8080-3fe189b3f50e
This commit is contained in:
@@ -22,7 +22,8 @@
|
||||
var/affected_area = 3
|
||||
throw_speed = 4
|
||||
throw_range = 20
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BELT
|
||||
New()
|
||||
var/datum/reagents/R = new/datum/reagents(1000)
|
||||
reagents = R
|
||||
@@ -1227,7 +1228,8 @@
|
||||
amount_per_transfer_from_this = 5
|
||||
volume = 30
|
||||
possible_transfer_amounts = null
|
||||
flags = FPRINT | ONBELT | TABLEPASS | OPENCONTAINER
|
||||
flags = FPRINT | TABLEPASS | OPENCONTAINER
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
/obj/item/weapon/reagent_containers/hypospray/attack_paw(mob/user as mob)
|
||||
return src.attack_hand(user)
|
||||
|
||||
@@ -3,10 +3,10 @@
|
||||
icon = 'glasses.dmi'
|
||||
w_class = 2.0
|
||||
flags = GLASSESCOVERSEYES
|
||||
var
|
||||
vision_flags = 0
|
||||
darkness_view = 0//Base human is 2
|
||||
invisa_view = 0
|
||||
slot_flags = SLOT_EYES
|
||||
var/vision_flags = 0
|
||||
var/darkness_view = 0//Base human is 2
|
||||
var/invisa_view = 0
|
||||
|
||||
/*
|
||||
SEE_SELF // can see self, no matter what
|
||||
|
||||
@@ -5,3 +5,4 @@
|
||||
flags = FPRINT | TABLEPASS | ONESIZEFITSALL
|
||||
var/list/allowed = list(/obj/item/weapon/tank/emergency_oxygen)
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 0, rad = 0)
|
||||
slot_flags = SLOT_OCLOTHING
|
||||
|
||||
@@ -157,7 +157,8 @@ proc/move_mining_shuttle()
|
||||
name = "Miner's pickaxe"
|
||||
icon = 'items.dmi'
|
||||
icon_state = "pickaxe"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT | ONBELT
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 15.0
|
||||
throwforce = 4.0
|
||||
item_state = "pickaxe"
|
||||
@@ -241,7 +242,8 @@ proc/move_mining_shuttle()
|
||||
name = "Shovel"
|
||||
icon = 'items.dmi'
|
||||
icon_state = "shovel"
|
||||
flags = FPRINT | TABLEPASS| CONDUCT | ONBELT
|
||||
flags = FPRINT | TABLEPASS| CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
force = 8.0
|
||||
throwforce = 4.0
|
||||
item_state = "shovel"
|
||||
|
||||
@@ -6,7 +6,8 @@
|
||||
name = "Mining Satchel"
|
||||
var/mode = 1; //0 = pick one at a time, 1 = pick all on tile
|
||||
var/capacity = 50; //the number of ore pieces it can carry.
|
||||
flags = FPRINT | TABLEPASS | ONBELT
|
||||
flags = FPRINT | TABLEPASS
|
||||
slot_flags = SLOT_BELT
|
||||
w_class = 1
|
||||
|
||||
/obj/item/weapon/satchel/attack_self(mob/user as mob)
|
||||
|
||||
@@ -454,7 +454,7 @@
|
||||
return
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.flags & ONBACK ))
|
||||
if (!( W.slot_flags & SLOT_BACK ))
|
||||
return
|
||||
if(istype(W,/obj/item/weapon/twohanded) && W:wielded)
|
||||
usr << "<span class='warning'>Unwield the [initial(W.name)] first!</span>"
|
||||
@@ -478,7 +478,9 @@
|
||||
if (emptyHand)
|
||||
wear_suit.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/suit) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_OCLOTHING ))
|
||||
return
|
||||
if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
src << "\red You're too fat to wear the [W.name]!"
|
||||
@@ -491,7 +493,9 @@
|
||||
if (emptyHand)
|
||||
gloves.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/gloves) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_GLOVES ))
|
||||
return
|
||||
u_equip(W)
|
||||
gloves = W
|
||||
@@ -501,7 +505,9 @@
|
||||
if (emptyHand)
|
||||
shoes.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/shoes) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_FEET ))
|
||||
return
|
||||
u_equip(W)
|
||||
shoes = W
|
||||
@@ -511,7 +517,9 @@
|
||||
if (emptyHand)
|
||||
belt.DblClick()
|
||||
return
|
||||
if (!W || !W.flags || !( W.flags & ONBELT ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_BELT ))
|
||||
return
|
||||
u_equip(W)
|
||||
belt = W
|
||||
@@ -521,7 +529,9 @@
|
||||
if (emptyHand)
|
||||
glasses.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/glasses) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_EYES ))
|
||||
return
|
||||
u_equip(W)
|
||||
glasses = W
|
||||
@@ -531,10 +541,9 @@
|
||||
if (emptyHand)
|
||||
head.DblClick()
|
||||
return
|
||||
if (( istype(W, /obj/item/weapon/paper) ))
|
||||
u_equip(W)
|
||||
head = W
|
||||
else if (!( istype(W, /obj/item/clothing/head) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_HEAD ))
|
||||
return
|
||||
u_equip(W)
|
||||
head = W
|
||||
@@ -550,7 +559,9 @@
|
||||
if (emptyHand)
|
||||
ears.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/ears) ) && !( istype(W, /obj/item/device/radio/headset) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_EARS ))
|
||||
return
|
||||
u_equip(W)
|
||||
ears = W
|
||||
@@ -560,7 +571,9 @@
|
||||
if (emptyHand)
|
||||
w_uniform.DblClick()
|
||||
return
|
||||
if (!( istype(W, /obj/item/clothing/under) ))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_ICLOTHING ))
|
||||
return
|
||||
if (mutations & FAT && !(W.flags & ONESIZEFITSALL))
|
||||
src << "\red You're too fat to wear the [W.name]!"
|
||||
@@ -575,7 +588,9 @@
|
||||
return
|
||||
if (!w_uniform)
|
||||
return
|
||||
if (!istype(W, /obj/item/weapon/card/id) && !istype(W, /obj/item/device/pda) )
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
if (!( W.slot_flags & SLOT_ID ))
|
||||
return
|
||||
u_equip(W)
|
||||
wear_id = W
|
||||
@@ -585,19 +600,25 @@
|
||||
if (emptyHand)
|
||||
l_store.DblClick()
|
||||
return
|
||||
if ((!( istype(W, /obj/item) ) || W.w_class > 2 || !( w_uniform )))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
u_equip(W)
|
||||
l_store = W
|
||||
if ( ( W.slot_flags & SLOT_DENYPOCKET ) )
|
||||
return
|
||||
if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) )
|
||||
u_equip(W)
|
||||
l_store = W
|
||||
if("storage2")
|
||||
if (r_store)
|
||||
if (emptyHand)
|
||||
r_store.DblClick()
|
||||
return
|
||||
if ((!( istype(W, /obj/item) ) || W.w_class > 2 || !( w_uniform )))
|
||||
if (!istype(W, /obj/item))
|
||||
return
|
||||
u_equip(W)
|
||||
r_store = W
|
||||
if ( ( W.slot_flags & SLOT_DENYPOCKET ) )
|
||||
return
|
||||
if ( W.w_class <= 2 || ( W.slot_flags & SLOT_POCKET ) )
|
||||
u_equip(W)
|
||||
r_store = W
|
||||
if("suit storage")
|
||||
if (s_store)
|
||||
if (emptyHand)
|
||||
|
||||
@@ -9,7 +9,8 @@
|
||||
throw_range = 10
|
||||
var/obj/item/weapon/pen/haspen //The stored pen.
|
||||
var/obj/item/weapon/paper/toppaper //The topmost piece of paper.
|
||||
flags = FPRINT | TABLEPASS | ONBELT
|
||||
flags = FPRINT | TABLEPASS
|
||||
slot_flags = SLOT_BELT
|
||||
pressure_resistance = 10
|
||||
|
||||
/obj/item/weapon/clipboard/New()
|
||||
|
||||
@@ -9,279 +9,276 @@
|
||||
throw_range = 15
|
||||
layer = 4
|
||||
pressure_resistance = 1
|
||||
slot_flags = SLOT_HEAD
|
||||
|
||||
var
|
||||
info //What's actually written on the paper.
|
||||
info_links //A different version of the paper which includes html links at fields and EOF
|
||||
stamps //The (text for the) stamps on the paper.
|
||||
fields //Amount of user created fields
|
||||
list/stamped
|
||||
see_face = 1
|
||||
body_parts_covered = HEAD
|
||||
protective_temperature = 0
|
||||
rigged = 0
|
||||
spam_flag = 0
|
||||
var/info //What's actually written on the paper.
|
||||
var/info_links //A different version of the paper which includes html links at fields and EOF
|
||||
var/stamps //The (text for the) stamps on the paper.
|
||||
var/fields //Amount of user created fields
|
||||
var/list/stamped
|
||||
var/see_face = 1
|
||||
var/body_parts_covered = HEAD
|
||||
var/protective_temperature = 0
|
||||
var/rigged = 0
|
||||
var/spam_flag = 0
|
||||
|
||||
const
|
||||
deffont = "Verdana"
|
||||
signfont = "Times New Roman"
|
||||
crayonfont = "Comic Sans MS"
|
||||
var/const/deffont = "Verdana"
|
||||
var/const/signfont = "Times New Roman"
|
||||
var/const/crayonfont = "Comic Sans MS"
|
||||
|
||||
New()
|
||||
..()
|
||||
src.pixel_y = rand(-8, 8)
|
||||
src.pixel_x = rand(-9, 9)
|
||||
spawn(2)
|
||||
if(src.info)
|
||||
src.overlays += "paper_words"
|
||||
updateinfolinks()
|
||||
return
|
||||
|
||||
update_icon()
|
||||
/obj/item/weapon/paper/New()
|
||||
..()
|
||||
src.pixel_y = rand(-8, 8)
|
||||
src.pixel_x = rand(-9, 9)
|
||||
spawn(2)
|
||||
if(src.info)
|
||||
src.overlays += "paper_words"
|
||||
return
|
||||
|
||||
examine()
|
||||
set src in oview(1)
|
||||
|
||||
// ..() //We don't want them to see the dumb "this is a paper" thing every time.
|
||||
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
else
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
return
|
||||
|
||||
verb/rename()
|
||||
set name = "Rename paper"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
if ((usr.mutations & CLUMSY) && prob(50))
|
||||
usr << "\red You cut yourself on the paper."
|
||||
return
|
||||
var/n_name = copytext(sanitize(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text),1,MAX_NAME_LEN)
|
||||
if ((loc == usr && usr.stat == 0))
|
||||
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
examine()
|
||||
if(rigged && (Holiday == "April Fool's Day"))
|
||||
if(spam_flag == 0)
|
||||
spam_flag = 1
|
||||
playsound(src.loc, 'bikehorn.ogg', 50, 1)
|
||||
spawn(20)
|
||||
spam_flag = 0
|
||||
return
|
||||
|
||||
attack_ai(var/mob/living/silicon/ai/user as mob)
|
||||
var/dist
|
||||
if (istype(user) && user.current) //is AI
|
||||
dist = get_dist(src, user.current)
|
||||
else //cyborg or AI not seeing through a camera
|
||||
dist = get_dist(src, user)
|
||||
if (dist < 2)
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
else
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
return
|
||||
|
||||
proc
|
||||
addtofield(var/id, var/text, var/links = 0)
|
||||
var/locid = 0
|
||||
var/laststart = 1
|
||||
var/textindex = 1
|
||||
while(1) // I know this can cause infinite loops and fuck up the whole server, but the if(istart==0) should be safe as fuck
|
||||
var/istart = 0
|
||||
if(links)
|
||||
istart = findtext(info_links, "<span class=\"paper_field\">", laststart)
|
||||
else
|
||||
istart = findtext(info, "<span class=\"paper_field\">", laststart)
|
||||
|
||||
if(istart==0)
|
||||
return // No field found with matching id
|
||||
|
||||
laststart = istart+1
|
||||
locid++
|
||||
if(locid == id)
|
||||
var/iend = 1
|
||||
if(links)
|
||||
iend = findtext(info_links, "</span>", istart)
|
||||
else
|
||||
iend = findtext(info, "</span>", istart)
|
||||
|
||||
//textindex = istart+26
|
||||
textindex = iend
|
||||
break
|
||||
|
||||
if(links)
|
||||
var/before = copytext(info_links, 1, textindex)
|
||||
var/after = copytext(info_links, textindex)
|
||||
info_links = before + text + after
|
||||
else
|
||||
var/before = copytext(info, 1, textindex)
|
||||
var/after = copytext(info, textindex)
|
||||
info = before + text + after
|
||||
updateinfolinks()
|
||||
|
||||
updateinfolinks()
|
||||
info_links = info
|
||||
var/i = 0
|
||||
for(i=1,i<=fields,i++)
|
||||
addtofield(i, "<font face=\"[deffont]\"><A href='?src=\ref[src];write=[i]'>write</A></font>", 1)
|
||||
info_links = info_links + "<font face=\"[deffont]\"><A href='?src=\ref[src];write=end'>write</A></font>"
|
||||
return
|
||||
|
||||
parsepencode(var/t, var/obj/item/weapon/pen/P, mob/user as mob, var/iscrayon = 0)
|
||||
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
||||
/obj/item/weapon/paper/update_icon()
|
||||
if(src.info)
|
||||
src.overlays += "paper_words"
|
||||
return
|
||||
|
||||
t = dd_replacetext(t, "\[center\]", "<center>")
|
||||
t = dd_replacetext(t, "\[/center\]", "</center>")
|
||||
t = dd_replacetext(t, "\[br\]", "<BR>")
|
||||
t = dd_replacetext(t, "\[b\]", "<B>")
|
||||
t = dd_replacetext(t, "\[/b\]", "</B>")
|
||||
t = dd_replacetext(t, "\[i\]", "<I>")
|
||||
t = dd_replacetext(t, "\[/i\]", "</I>")
|
||||
t = dd_replacetext(t, "\[u\]", "<U>")
|
||||
t = dd_replacetext(t, "\[/u\]", "</U>")
|
||||
t = dd_replacetext(t, "\[large\]", "<font size = \"4\">")
|
||||
t = dd_replacetext(t, "\[/large\]", "</font>")
|
||||
t = dd_replacetext(t, "\[sign\]", "<font face=\"[signfont]\"><i>[user.real_name]</i></font>")
|
||||
t = dd_replacetext(t, "\[field\]", "<span class=\"paper_field\"></span>")
|
||||
/obj/item/weapon/paper/examine()
|
||||
set src in oview(1)
|
||||
|
||||
if(!iscrayon)
|
||||
t = dd_replacetext(t, "\[*\]", "<li>")
|
||||
t = dd_replacetext(t, "\[hr\]", "<HR>")
|
||||
t = dd_replacetext(t, "\[small\]", "<font size = \"1\">")
|
||||
t = dd_replacetext(t, "\[/small\]", "</font>")
|
||||
t = dd_replacetext(t, "\[list\]", "<ul>")
|
||||
t = dd_replacetext(t, "\[/list\]", "</ul>")
|
||||
// ..() //We don't want them to see the dumb "this is a paper" thing every time.
|
||||
if(!(istype(usr, /mob/living/carbon/human) || istype(usr, /mob/dead/observer) || istype(usr, /mob/living/silicon)))
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
else
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
return
|
||||
|
||||
t = "<font face=\"[deffont]\" color=[P.colour]>[t]</font>"
|
||||
else // If it is a crayon, and he still tries to use these, make them empty!
|
||||
t = dd_replacetext(t, "\[*\]", "")
|
||||
t = dd_replacetext(t, "\[hr\]", "")
|
||||
t = dd_replacetext(t, "\[small\]", "")
|
||||
t = dd_replacetext(t, "\[/small\]", "")
|
||||
t = dd_replacetext(t, "\[list\]", "")
|
||||
t = dd_replacetext(t, "\[/list\]", "")
|
||||
/obj/item/weapon/paper/verb/rename()
|
||||
set name = "Rename paper"
|
||||
set category = "Object"
|
||||
set src in usr
|
||||
|
||||
t = "<font face=\"[crayonfont]\" color=[P.colour]><b>[t]</b></font>"
|
||||
if ((usr.mutations & CLUMSY) && prob(50))usr << "\red You cut yourself on the paper."
|
||||
return
|
||||
var/n_name = copytext(sanitize(input(usr, "What would you like to label the paper?", "Paper Labelling", null) as text),1,MAX_NAME_LEN)
|
||||
if ((loc == usr && usr.stat == 0))
|
||||
name = "paper[(n_name ? text("- '[n_name]'") : null)]"
|
||||
add_fingerprint(usr)
|
||||
return
|
||||
|
||||
//Count the fields
|
||||
var/laststart = 1
|
||||
while(1)
|
||||
var/i = findtext(t, "<span class=\"paper_field\">", laststart)
|
||||
if(i==0)
|
||||
break
|
||||
laststart = i+1
|
||||
fields++
|
||||
/obj/item/weapon/paper/attack_self(mob/living/user as mob)
|
||||
examine()
|
||||
if(rigged && (Holiday == "April Fool's Day"))
|
||||
if(spam_flag == 0)
|
||||
spam_flag = 1
|
||||
playsound(src.loc, 'bikehorn.ogg', 50, 1)
|
||||
spawn(20)
|
||||
spam_flag = 0
|
||||
return
|
||||
|
||||
return t
|
||||
/obj/item/weapon/paper/attack_ai(var/mob/living/silicon/ai/user as mob)
|
||||
var/dist
|
||||
if (istype(user) && user.current) //is AI
|
||||
dist = get_dist(src, user.current)
|
||||
else //cyborg or AI not seeing through a camera
|
||||
dist = get_dist(src, user)
|
||||
if (dist < 2)
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
else
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[stars(info)][stamps]</BODY></HTML>", "window=[name]")
|
||||
onclose(usr, "[name]")
|
||||
return
|
||||
|
||||
openhelp(mob/user as mob)
|
||||
user << browse({"<HTML><HEAD><TITLE>Pen Help</TITLE></HEAD>
|
||||
<BODY>
|
||||
<b><center>Crayon&Pen commands</center></b><br>
|
||||
<br>
|
||||
\[br\] : Creates a linebreak.<br>
|
||||
\[center\] - \[/center\] : Centers the text.<br>
|
||||
\[b\] - \[/b\] : Makes the text <b>bold</b>.<br>
|
||||
\[i\] - \[/i\] : Makes the text <i>italic</i>.<br>
|
||||
\[u\] - \[/u\] : Makes the text <u>underlined</u>.<br>
|
||||
\[large\] - \[/large\] : Increases the <font size = \"4\">size</font> of the text.<br>
|
||||
\[sign\] : Inserts a signature of your name in a foolproof way.<br>
|
||||
\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.<br>
|
||||
<br>
|
||||
<b><center>Pen exclusive commands</center></b><br>
|
||||
\[small\] - \[/small\] : Decreases the <font size = \"1\">size</font> of the text.<br>
|
||||
\[list\] - \[/list\] : A list.<br>
|
||||
\[*\] : A dot used for lists.<br>
|
||||
\[hr\] : Adds a horizontal rule.
|
||||
</BODY></HTML>"}, "window=paper_help")
|
||||
/obj/item/weapon/paper/proc/addtofield(var/id, var/text, var/links = 0)
|
||||
var/locid = 0
|
||||
var/laststart = 1
|
||||
var/textindex = 1
|
||||
while(1) // I know this can cause infinite loops and fuck up the whole server, but the if(istart==0) should be safe as fuck
|
||||
var/istart = 0
|
||||
if(links)
|
||||
istart = findtext(info_links, "<span class=\"paper_field\">", laststart)
|
||||
else
|
||||
istart = findtext(info, "<span class=\"paper_field\">", laststart)
|
||||
|
||||
if(istart==0)
|
||||
return // No field found with matching id
|
||||
|
||||
Topic(href, href_list)
|
||||
..()
|
||||
if ((usr.stat || usr.restrained()))
|
||||
return
|
||||
|
||||
if(href_list["write"])
|
||||
var/id = href_list["write"]
|
||||
var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as text
|
||||
|
||||
var/obj/item/i = usr.equipped() // Check to see if he still got that darn pen, also check if he's using a crayon or pen.
|
||||
var/iscrayon = 0
|
||||
if(!istype(i, /obj/item/weapon/pen))
|
||||
if(!istype(i, /obj/item/toy/crayon))
|
||||
return
|
||||
iscrayon = 1
|
||||
|
||||
|
||||
if ((!in_range(src, usr) && src.loc != usr && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != usr && usr.equipped() != i)) // Some check to see if he's allowed to write
|
||||
return
|
||||
|
||||
t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html
|
||||
|
||||
if(id!="end")
|
||||
addtofield(text2num(id), t) // He wants to edit a field, let him.
|
||||
laststart = istart+1
|
||||
locid++
|
||||
if(locid == id)
|
||||
var/iend = 1
|
||||
if(links)
|
||||
iend = findtext(info_links, "</span>", istart)
|
||||
else
|
||||
info += t // Oh, he wants to edit to the end of the file, let him.
|
||||
updateinfolinks()
|
||||
iend = findtext(info, "</span>", istart)
|
||||
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window
|
||||
//textindex = istart+26
|
||||
textindex = iend
|
||||
break
|
||||
|
||||
if(!overlays.Find("paper_words"))
|
||||
overlays += "paper_words"
|
||||
if(links)
|
||||
var/before = copytext(info_links, 1, textindex)
|
||||
var/after = copytext(info_links, textindex)
|
||||
info_links = before + text + after
|
||||
else
|
||||
var/before = copytext(info, 1, textindex)
|
||||
var/after = copytext(info, textindex)
|
||||
info = before + text + after
|
||||
updateinfolinks()
|
||||
|
||||
attackby(obj/item/weapon/P as obj, mob/user as mob)
|
||||
..()
|
||||
var/clown = 0
|
||||
if(user.mind && (user.mind.assigned_role == "Clown"))
|
||||
clown = 1
|
||||
/obj/item/weapon/paper/proc/updateinfolinks()
|
||||
info_links = info
|
||||
var/i = 0
|
||||
for(i=1,i<=fields,i++)
|
||||
addtofield(i, "<font face=\"[deffont]\"><A href='?src=\ref[src];write=[i]'>write</A></font>", 1)
|
||||
info_links = info_links + "<font face=\"[deffont]\"><A href='?src=\ref[src];write=end'>write</A></font>"
|
||||
|
||||
if (istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]")
|
||||
//openhelp(user)
|
||||
return
|
||||
else if(istype(P, /obj/item/weapon/stamp))
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
/obj/item/weapon/paper/proc/parsepencode(var/t, var/obj/item/weapon/pen/P, mob/user as mob, var/iscrayon = 0)
|
||||
t = copytext(sanitize(t),1,MAX_MESSAGE_LEN)
|
||||
|
||||
t = dd_replacetext(t, "\[center\]", "<center>")
|
||||
t = dd_replacetext(t, "\[/center\]", "</center>")
|
||||
t = dd_replacetext(t, "\[br\]", "<BR>")
|
||||
t = dd_replacetext(t, "\[b\]", "<B>")
|
||||
t = dd_replacetext(t, "\[/b\]", "</B>")
|
||||
t = dd_replacetext(t, "\[i\]", "<I>")
|
||||
t = dd_replacetext(t, "\[/i\]", "</I>")
|
||||
t = dd_replacetext(t, "\[u\]", "<U>")
|
||||
t = dd_replacetext(t, "\[/u\]", "</U>")
|
||||
t = dd_replacetext(t, "\[large\]", "<font size = \"4\">")
|
||||
t = dd_replacetext(t, "\[/large\]", "</font>")
|
||||
t = dd_replacetext(t, "\[sign\]", "<font face=\"[signfont]\"><i>[user.real_name]</i></font>")
|
||||
t = dd_replacetext(t, "\[field\]", "<span class=\"paper_field\"></span>")
|
||||
|
||||
if(!iscrayon)
|
||||
t = dd_replacetext(t, "\[*\]", "<li>")
|
||||
t = dd_replacetext(t, "\[hr\]", "<HR>")
|
||||
t = dd_replacetext(t, "\[small\]", "<font size = \"1\">")
|
||||
t = dd_replacetext(t, "\[/small\]", "</font>")
|
||||
t = dd_replacetext(t, "\[list\]", "<ul>")
|
||||
t = dd_replacetext(t, "\[/list\]", "</ul>")
|
||||
|
||||
t = "<font face=\"[deffont]\" color=[P.colour]>[t]</font>"
|
||||
else // If it is a crayon, and he still tries to use these, make them empty!
|
||||
t = dd_replacetext(t, "\[*\]", "")
|
||||
t = dd_replacetext(t, "\[hr\]", "")
|
||||
t = dd_replacetext(t, "\[small\]", "")
|
||||
t = dd_replacetext(t, "\[/small\]", "")
|
||||
t = dd_replacetext(t, "\[list\]", "")
|
||||
t = dd_replacetext(t, "\[/list\]", "")
|
||||
|
||||
t = "<font face=\"[crayonfont]\" color=[P.colour]><b>[t]</b></font>"
|
||||
|
||||
//Count the fields
|
||||
var/laststart = 1
|
||||
while(1)
|
||||
var/i = findtext(t, "<span class=\"paper_field\">", laststart)
|
||||
if(i==0)
|
||||
break
|
||||
laststart = i+1
|
||||
fields++
|
||||
|
||||
return t
|
||||
|
||||
/obj/item/weapon/paper/proc/openhelp(mob/user as mob)
|
||||
user << browse({"<HTML><HEAD><TITLE>Pen Help</TITLE></HEAD>
|
||||
<BODY>
|
||||
<b><center>Crayon&Pen commands</center></b><br>
|
||||
<br>
|
||||
\[br\] : Creates a linebreak.<br>
|
||||
\[center\] - \[/center\] : Centers the text.<br>
|
||||
\[b\] - \[/b\] : Makes the text <b>bold</b>.<br>
|
||||
\[i\] - \[/i\] : Makes the text <i>italic</i>.<br>
|
||||
\[u\] - \[/u\] : Makes the text <u>underlined</u>.<br>
|
||||
\[large\] - \[/large\] : Increases the <font size = \"4\">size</font> of the text.<br>
|
||||
\[sign\] : Inserts a signature of your name in a foolproof way.<br>
|
||||
\[field\] : Inserts an invisible field which lets you start type from there. Useful for forms.<br>
|
||||
<br>
|
||||
<b><center>Pen exclusive commands</center></b><br>
|
||||
\[small\] - \[/small\] : Decreases the <font size = \"1\">size</font> of the text.<br>
|
||||
\[list\] - \[/list\] : A list.<br>
|
||||
\[*\] : A dot used for lists.<br>
|
||||
\[hr\] : Adds a horizontal rule.
|
||||
</BODY></HTML>"}, "window=paper_help")
|
||||
|
||||
|
||||
/obj/item/weapon/paper/Topic(href, href_list)
|
||||
..()
|
||||
if ((usr.stat || usr.restrained()))
|
||||
return
|
||||
|
||||
if(href_list["write"])
|
||||
var/id = href_list["write"]
|
||||
var/t = strip_html_simple(input(usr, "What text do you wish to add to " + (id=="end" ? "the end of the paper" : "field "+id) + "?", "[name]", null),8192) as text
|
||||
|
||||
var/obj/item/i = usr.equipped() // Check to see if he still got that darn pen, also check if he's using a crayon or pen.
|
||||
var/iscrayon = 0
|
||||
if(!istype(i, /obj/item/weapon/pen))
|
||||
if(!istype(i, /obj/item/toy/crayon))
|
||||
return
|
||||
iscrayon = 1
|
||||
|
||||
stamps += (stamps=="" ? "<HR>" : "<BR>") + "<i>This paper has been stamped with the [P.name].</i>"
|
||||
|
||||
switch(P.type)
|
||||
if(/obj/item/weapon/stamp/captain)
|
||||
overlays += "paper_stamped_cap"
|
||||
if(/obj/item/weapon/stamp/hop)
|
||||
overlays += "paper_stamped_hop"
|
||||
if(/obj/item/weapon/stamp/hos)
|
||||
overlays += "paper_stamped_hos"
|
||||
if(/obj/item/weapon/stamp/ce)
|
||||
overlays += "paper_stamped_ce"
|
||||
if(/obj/item/weapon/stamp/rd)
|
||||
overlays += "paper_stamped_rd"
|
||||
if(/obj/item/weapon/stamp/cmo)
|
||||
overlays += "paper_stamped_cmo"
|
||||
if(/obj/item/weapon/stamp/denied)
|
||||
overlays += "paper_stamped_denied"
|
||||
if(/obj/item/weapon/stamp/clown)
|
||||
if (!clown)
|
||||
usr << "\red You are totally unable to use the stamp. HONK!"
|
||||
return
|
||||
else
|
||||
overlays += "paper_stamped_clown"
|
||||
if ((!in_range(src, usr) && src.loc != usr && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != usr && usr.equipped() != i)) // Some check to see if he's allowed to write
|
||||
return
|
||||
|
||||
t = parsepencode(t, i, usr, iscrayon) // Encode everything from pencode to html
|
||||
|
||||
if(id!="end")
|
||||
addtofield(text2num(id), t) // He wants to edit a field, let him.
|
||||
else
|
||||
info += t // Oh, he wants to edit to the end of the file, let him.
|
||||
updateinfolinks()
|
||||
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]") // Update the window
|
||||
|
||||
if(!overlays.Find("paper_words"))
|
||||
overlays += "paper_words"
|
||||
|
||||
/obj/item/weapon/paper/attackby(obj/item/weapon/P as obj, mob/user as mob)
|
||||
..()
|
||||
var/clown = 0
|
||||
if(user.mind && (user.mind.assigned_role == "Clown"))
|
||||
clown = 1
|
||||
|
||||
if (istype(P, /obj/item/weapon/pen) || istype(P, /obj/item/toy/crayon))
|
||||
usr << browse("<HTML><HEAD><TITLE>[name]</TITLE></HEAD><BODY>[info_links][stamps]</BODY></HTML>", "window=[name]")
|
||||
//openhelp(user)
|
||||
return
|
||||
else if(istype(P, /obj/item/weapon/stamp))
|
||||
if ((!in_range(src, usr) && src.loc != user && !( istype(src.loc, /obj/item/weapon/clipboard) ) && src.loc.loc != user && user.equipped() != P))
|
||||
return
|
||||
|
||||
stamps += (stamps=="" ? "<HR>" : "<BR>") + "<i>This paper has been stamped with the [P.name].</i>"
|
||||
|
||||
switch(P.type)
|
||||
if(/obj/item/weapon/stamp/captain)
|
||||
overlays += "paper_stamped_cap"
|
||||
if(/obj/item/weapon/stamp/hop)
|
||||
overlays += "paper_stamped_hop"
|
||||
if(/obj/item/weapon/stamp/hos)
|
||||
overlays += "paper_stamped_hos"
|
||||
if(/obj/item/weapon/stamp/ce)
|
||||
overlays += "paper_stamped_ce"
|
||||
if(/obj/item/weapon/stamp/rd)
|
||||
overlays += "paper_stamped_rd"
|
||||
if(/obj/item/weapon/stamp/cmo)
|
||||
overlays += "paper_stamped_cmo"
|
||||
if(/obj/item/weapon/stamp/denied)
|
||||
overlays += "paper_stamped_denied"
|
||||
if(/obj/item/weapon/stamp/clown)
|
||||
if (!clown)
|
||||
usr << "\red You are totally unable to use the stamp. HONK!"
|
||||
return
|
||||
else
|
||||
overlays += "paper_stamped"
|
||||
if(!stamped)
|
||||
stamped = new
|
||||
stamped += P.type
|
||||
overlays += "paper_stamped_clown"
|
||||
else
|
||||
overlays += "paper_stamped"
|
||||
if(!stamped)
|
||||
stamped = new
|
||||
stamped += P.type
|
||||
|
||||
user << "\blue You stamp the paper with your rubber stamp."
|
||||
add_fingerprint(user)
|
||||
return
|
||||
user << "\blue You stamp the paper with your rubber stamp."
|
||||
add_fingerprint(user)
|
||||
return
|
||||
@@ -3,7 +3,8 @@
|
||||
name = "pen"
|
||||
icon = 'bureaucracy.dmi'
|
||||
icon_state = "pen"
|
||||
flags = FPRINT | ONBELT | TABLEPASS
|
||||
flags = FPRINT | TABLEPASS
|
||||
slot_flags = SLOT_BELT | SLOT_EARS
|
||||
throwforce = 0
|
||||
w_class = 1.0
|
||||
throw_speed = 7
|
||||
|
||||
@@ -3,13 +3,13 @@
|
||||
desc = "A bullet casing."
|
||||
icon = 'ammo.dmi'
|
||||
icon_state = "s-casing"
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
throwforce = 1
|
||||
w_class = 1.0
|
||||
var
|
||||
caliber = "" //Which kind of guns it can be loaded into
|
||||
projectile_type = ""//The bullet type to create when New() is called
|
||||
obj/item/projectile/BB = null //The loaded bullet
|
||||
var/caliber = "" //Which kind of guns it can be loaded into
|
||||
var/projectile_type = ""//The bullet type to create when New() is called
|
||||
var/obj/item/projectile/BB = null //The loaded bullet
|
||||
|
||||
|
||||
New()
|
||||
@@ -28,18 +28,18 @@
|
||||
desc = "A box of ammo"
|
||||
icon_state = "357"
|
||||
icon = 'ammo.dmi'
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
item_state = "syringe_kit"
|
||||
m_amt = 50000
|
||||
throwforce = 2
|
||||
w_class = 1.0
|
||||
throw_speed = 4
|
||||
throw_range = 10
|
||||
var
|
||||
list/stored_ammo = list()
|
||||
ammo_type = "/obj/item/ammo_casing"
|
||||
max_ammo = 7
|
||||
multiple_sprites = 0
|
||||
var/list/stored_ammo = list()
|
||||
var/ammo_type = "/obj/item/ammo_casing"
|
||||
var/max_ammo = 7
|
||||
var/multiple_sprites = 0
|
||||
|
||||
|
||||
New()
|
||||
|
||||
@@ -4,7 +4,8 @@
|
||||
icon = 'gun.dmi'
|
||||
icon_state = "detective"
|
||||
item_state = "gun"
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | ONBELT | USEDELAY
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BELT
|
||||
m_amt = 2000
|
||||
w_class = 3.0
|
||||
throwforce = 5
|
||||
@@ -13,17 +14,19 @@
|
||||
force = 5.0
|
||||
origin_tech = "combat=1"
|
||||
|
||||
var
|
||||
fire_sound = 'Gunshot.ogg'
|
||||
obj/item/projectile/in_chamber = null
|
||||
caliber = ""
|
||||
silenced = 0
|
||||
recoil = 0
|
||||
ejectshell = 1
|
||||
var/fire_sound = 'Gunshot.ogg'
|
||||
var/obj/item/projectile/in_chamber = null
|
||||
var/caliber = ""
|
||||
var/silenced = 0
|
||||
var/recoil = 0
|
||||
var/ejectshell = 1
|
||||
|
||||
proc
|
||||
load_into_chamber()
|
||||
special_check(var/mob/M)
|
||||
|
||||
proc/load_into_chamber()
|
||||
return
|
||||
|
||||
proc/special_check(var/mob/M)
|
||||
return
|
||||
|
||||
|
||||
load_into_chamber()
|
||||
|
||||
@@ -4,12 +4,11 @@
|
||||
desc = "A basic energy-based gun."
|
||||
fire_sound = 'Taser.ogg'
|
||||
|
||||
var
|
||||
obj/item/weapon/cell/power_supply //What type of power cell this uses
|
||||
charge_cost = 100 //How much energy is needed to fire.
|
||||
cell_type = "/obj/item/weapon/cell"
|
||||
projectile_type = "/obj/item/projectile/energy"
|
||||
modifystate
|
||||
var/obj/item/weapon/cell/power_supply //What type of power cell this uses
|
||||
var/charge_cost = 100 //How much energy is needed to fire.
|
||||
var/cell_type = "/obj/item/weapon/cell"
|
||||
var/projectile_type = "/obj/item/projectile/energy"
|
||||
var/modifystate
|
||||
|
||||
emp_act(severity)
|
||||
power_supply.use(round(power_supply.maxcharge / severity))
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
origin_tech = "combat=3;magnets=2"
|
||||
modifystate = "energystun"
|
||||
|
||||
var
|
||||
mode = 0 //0 = stun, 1 = kill
|
||||
var/mode = 0 //0 = stun, 1 = kill
|
||||
|
||||
|
||||
attack_self(mob/living/user as mob)
|
||||
|
||||
@@ -5,7 +5,8 @@
|
||||
fire_sound = 'Laser.ogg'
|
||||
origin_tech = "combat=2;magnets=4"
|
||||
w_class = 4.0
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BACK
|
||||
charge_cost = 100
|
||||
projectile_type = "/obj/item/projectile/ion"
|
||||
|
||||
@@ -27,7 +28,8 @@ obj/item/weapon/gun/energy/staff
|
||||
icon_state = "staffofchange"
|
||||
item_state = "staffofchange"
|
||||
fire_sound = 'emitter.ogg'
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BACK
|
||||
w_class = 4.0
|
||||
charge_cost = 200
|
||||
projectile_type = "/obj/item/projectile/change"
|
||||
|
||||
@@ -7,12 +7,11 @@
|
||||
w_class = 3.0
|
||||
m_amt = 1000
|
||||
|
||||
var
|
||||
ammo_type = "/obj/item/ammo_casing/a357"
|
||||
list/loaded = list()
|
||||
max_shells = 7
|
||||
load_method = 0 //0 = Single shells or quick loader, 1 = box, 2 = magazine
|
||||
obj/item/ammo_magazine/empty_mag = null
|
||||
var/ammo_type = "/obj/item/ammo_casing/a357"
|
||||
var/list/loaded = list()
|
||||
var/max_shells = 7
|
||||
var/load_method = 0 //0 = Single shells or quick loader, 1 = box, 2 = magazine
|
||||
var/obj/item/ammo_magazine/empty_mag = null
|
||||
|
||||
|
||||
New()
|
||||
|
||||
@@ -6,14 +6,14 @@
|
||||
max_shells = 4
|
||||
w_class = 4.0
|
||||
force = 10
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "shotgun"
|
||||
origin_tech = "combat=4;materials=2"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/beanbag"
|
||||
var
|
||||
recentpump = 0 // to prevent spammage
|
||||
pumped = 0
|
||||
obj/item/ammo_casing/current_shell = null
|
||||
var/recentpump = 0 // to prevent spammage
|
||||
var/pumped = 0
|
||||
var/obj/item/ammo_casing/current_shell = null
|
||||
|
||||
|
||||
load_into_chamber()
|
||||
@@ -64,7 +64,8 @@
|
||||
max_shells = 2
|
||||
w_class = 4.0
|
||||
force = 10
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY | ONBACK
|
||||
flags = FPRINT | TABLEPASS | CONDUCT | USEDELAY
|
||||
slot_flags = SLOT_BACK
|
||||
caliber = "shotgun"
|
||||
origin_tech = "combat=3;materials=1"
|
||||
ammo_type = "/obj/item/ammo_casing/shotgun/beanbag"
|
||||
@@ -119,8 +120,8 @@
|
||||
icon_state = "sawnshotgun"
|
||||
w_class = 3.0
|
||||
item_state = "gun"
|
||||
flags &= ~ONBACK //you can't sling it on your back
|
||||
flags |= ONBELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
|
||||
slot_flags &= ~SLOT_BACK //you can't sling it on your back
|
||||
slot_flags |= SLOT_BELT //but you can wear it on your belt (poorly concealed under a trenchcoat, ideally)
|
||||
name = "sawn-off shotgun"
|
||||
desc = "Omar's coming!"
|
||||
user << "<span class='warning'>You shorten the barrel of \the [src]!</span>"
|
||||
@@ -19,33 +19,32 @@
|
||||
flags = FPRINT | TABLEPASS
|
||||
pass_flags = PASSTABLE
|
||||
mouse_opacity = 0
|
||||
var
|
||||
bumped = 0 //Prevents it from hitting more than one guy at once
|
||||
def_zone = "" //Aiming at
|
||||
mob/firer = null//Who shot it
|
||||
silenced = 0 //Attack message
|
||||
yo = null
|
||||
xo = null
|
||||
current = null
|
||||
turf/original = null // the original turf clicked
|
||||
turf/starting = null // the projectile's starting turf
|
||||
var/bumped = 0 //Prevents it from hitting more than one guy at once
|
||||
var/def_zone = "" //Aiming at
|
||||
var/mob/firer = null//Who shot it
|
||||
var/silenced = 0 //Attack message
|
||||
var/yo = null
|
||||
var/xo = null
|
||||
var/current = null
|
||||
var/turf/original = null // the original turf clicked
|
||||
var/turf/starting = null // the projectile's starting turf
|
||||
|
||||
p_x = 16
|
||||
p_y = 16 // the pixel location of the tile that the player clicked. Default is the center
|
||||
var/p_x = 16
|
||||
var/p_y = 16 // the pixel location of the tile that the player clicked. Default is the center
|
||||
|
||||
damage = 10
|
||||
damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
|
||||
nodamage = 0 //Determines if the projectile will skip any damage inflictions
|
||||
flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb
|
||||
projectile_type = "/obj/item/projectile"
|
||||
var/damage = 10
|
||||
var/damage_type = BRUTE //BRUTE, BURN, TOX, OXY, CLONE are the only things that should be in here
|
||||
var/nodamage = 0 //Determines if the projectile will skip any damage inflictions
|
||||
var/flag = "bullet" //Defines what armor to use when it hits things. Must be set to bullet, laser, energy,or bomb
|
||||
var/projectile_type = "/obj/item/projectile"
|
||||
//Effects
|
||||
stun = 0
|
||||
weaken = 0
|
||||
paralyze = 0
|
||||
irradiate = 0
|
||||
stutter = 0
|
||||
eyeblur = 0
|
||||
drowsy = 0
|
||||
var/stun = 0
|
||||
var/weaken = 0
|
||||
var/paralyze = 0
|
||||
var/irradiate = 0
|
||||
var/stutter = 0
|
||||
var/eyeblur = 0
|
||||
var/drowsy = 0
|
||||
|
||||
|
||||
proc/on_hit(var/atom/target, var/blocked = 0)
|
||||
|
||||
@@ -154,7 +154,8 @@
|
||||
|
||||
w_class = 1
|
||||
item_state = "electronic"
|
||||
flags = FPRINT | TABLEPASS | ONBELT | CONDUCT
|
||||
flags = FPRINT | TABLEPASS | CONDUCT
|
||||
slot_flags = SLOT_BELT
|
||||
|
||||
attack_self(mob/user as mob)
|
||||
var/dat = "<TT><B>TagMaster 2.2</B><BR><BR>"
|
||||
|
||||
Reference in New Issue
Block a user