Resolved Conflicts:

code/game/gamemodes/gang/dominator.dm
This commit is contained in:
Ikarrus
2015-06-18 23:05:51 -06:00
133 changed files with 501 additions and 311 deletions
-10
View File
@@ -1300,17 +1300,7 @@ while True:
print sender+" Has now joined"
users.append(sender)
#####
if ".fi" in data[0] and sender.lower() == "skibiliano":
operators.append(sender)
if sender.lower() not in peopleheknows[0]:
if data[0].split("!")[1] in peopleheknows[1]:
appendion = "...you do seem familiar however"
else:
appendion = ""
if data[1][1].lower() == channel or data[1][1].lower() == channel[1:]:
conn.privmsg(data[1][1],CORE_DATA.greeting.replace("USER",sender)+" "+appendion)
else:
conn.privmsg(data[1][1],"Hello! Haven't seen you here before! Happy to meet you! %s" %(appendion))
peopleheknows[0].append(sender.lower())
peopleheknows[1].append(data[0].split("!")[1])
with open("peopleheknows.cache","w") as peoplehecache:
+2 -1
View File
@@ -134,7 +134,8 @@ var/list/wireColours = list("red", "blue", "green", "black", "orange", "brown",
if(istype(I, /obj/item/device/assembly))
var/obj/item/device/assembly/A = I;
if(A.attachable)
L.drop_item()
if(!L.drop_item())
return
Attach(colour, A)
else
L << "<span class='warning'>You need a attachable assembly!</span>"
+2 -1
View File
@@ -519,7 +519,8 @@
/obj/machinery/computer/scan_consolenew/attackby(obj/item/I as obj, mob/user as mob, params)
if (istype(I, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
if (!src.diskette)
user.drop_item()
if(!user.drop_item())
return
I.loc = src
src.diskette = I
user << "<span class='notice'>You insert [I].</span>"
@@ -60,7 +60,8 @@
/obj/machinery/abductor/gland_dispenser/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/gland))
user.drop_item()
if(!user.drop_item())
return
W.loc = src
for(var/i=1,i<=gland_colors.len,i++)
if(gland_types[i] == W.type)
+11 -10
View File
@@ -77,16 +77,17 @@
mode.A_timer = "OFFLINE"
if(gang == "B")
mode.B_timer = "OFFLINE"
if(!isnum(mode.A_timer) && !isnum(mode.B_timer))
SSshuttle.emergencyNoEscape = 0
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED
SSshuttle.emergency.timer = world.time
priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority")
else
priority_announce("All hostile activity within station systems have ceased.","Network Alert")
if(get_security_level() == "delta")
set_security_level("red")
if(gang)
if(!isnum(mode.A_timer) && !isnum(mode.B_timer))
SSshuttle.emergencyNoEscape = 0
if(SSshuttle.emergency.mode == SHUTTLE_STRANDED)
SSshuttle.emergency.mode = SHUTTLE_DOCKED
SSshuttle.emergency.timer = world.time
priority_announce("Hostile enviroment resolved. You have 3 minutes to board the Emergency Shuttle.", null, 'sound/AI/shuttledock.ogg', "Priority")
else
priority_announce("All hostile activity within station systems have ceased.","Network Alert")
if(get_security_level() == "delta")
set_security_level("red")
ticker.mode.message_gangtools(((gang=="A") ? ticker.mode.A_tools : ticker.mode.B_tools),"Hostile takeover cancelled: Dominator is no longer operational.",1,1)
SetLuminosity(0)
icon_state = "dominator-broken"
+2 -2
View File
@@ -273,7 +273,7 @@
if(check && isloyal(gangster_mind.current)) //Check to see if the potential gangster is implanted
return 0
if(gangster_mind in (A_bosses | A_gang | B_bosses | B_gang))
return 0
return 1
if(gang == "A")
A_gang += gangster_mind
else
@@ -290,7 +290,7 @@
gangster_mind.current.attack_log += "\[[time_stamp()]\] <font color='red'>Has been converted to the [gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]!</font>"
gangster_mind.special_role = "[gang=="A" ? "[gang_name("A")] Gang (A)" : "[gang_name("B")] Gang (B)"]"
update_gang_icons_added(gangster_mind,gang)
return 1
return 2
////////////////////////////////////////////////////////////////////
//Deals with players reverting to neutral (Not a gangster anymore)//
////////////////////////////////////////////////////////////////////
+22 -12
View File
@@ -78,18 +78,24 @@
dat += "(10 Influence) "
if(points >= 10)
dat += "<a href='?src=\ref[src];purchase=ammo'>10mm Ammo</a><br>"
dat += "<a href='?src=\ref[src];purchase=10mmammo'>10mm Ammo</a><br>"
else
dat += "10mm Ammo<br>"
dat += "(50 Influence) "
if(points >= 50)
dat += "<a href='?src=\ref[src];purchase=SMG'>Thompson SMG</a><br>"
dat += "(40 Influence) "
if(points >= 40)
dat += "<a href='?src=\ref[src];purchase=uzi'>Mini Uzi</a><br>"
else
dat += "Thompson SMG<br>"
dat += "Mini Uzi<br>"
dat += "(25 Influence) "
if(points >= 25)
dat += "<a href='?src=\ref[src];purchase=9mmammo'>Uzi Ammo</a><br>"
else
dat += "Uzi Magazine<br>"
dat += "<br>"
dat += "<B>Purchase Utilities:</B><br>"
dat += "<B>Purchase Equipment:</B><br>"
dat += "(5 Influence) "
if(points >= 5)
@@ -163,14 +169,18 @@
if(points >= 20)
item_type = /obj/item/weapon/gun/projectile/automatic/pistol
points = 20
if("ammo")
if("10mmammo")
if(points >= 10)
item_type = /obj/item/ammo_box/magazine/m10mm
points = 10
if("SMG")
if(points >= 50)
item_type = /obj/item/weapon/gun/projectile/automatic/tommygun
points = 50
if("uzi")
if(points >= 40)
item_type = /obj/item/weapon/gun/projectile/automatic/mini_uzi
points = 40
if("9mmammo")
if(points >= 25)
item_type = /obj/item/ammo_box/magazine/uzim9mm
points = 25
if("vest")
if(points >= 10)
item_type = /obj/item/clothing/suit/armor/bulletproof
@@ -357,4 +367,4 @@
/obj/item/device/gangtool/lt
boss = 0
outfits = 1
outfits = 1
+2 -1
View File
@@ -85,7 +85,8 @@ Made by Xhuis
if(config.protect_assistant_from_antagonist)
restricted_jobs += "Assistant"
var/shadowlings = 2 //How many shadowlings there are; hardcoded to 2
var/shadowlings = max(2, round(num_players()/10))
while(shadowlings)
var/datum/mind/shadow = pick(antag_candidates)
+3 -1
View File
@@ -1,7 +1,7 @@
//In this file: Summon Magic/Summon Guns/Summon Events
/proc/rightandwrong(var/summon_type, var/mob/user, var/survivor_probability) //0 = Summon Guns, 1 = Summon Magic
var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg")
var/list/gunslist = list("taser","egun","laser","revolver","detective","c20r","nuclear","deagle","gyrojet","pulse","suppressed","cannon","doublebarrel","shotgun","combatshotgun","bulldog","mateba","sabr","crossbow","saw","car","boltaction","speargun","arg","uzi")
var/list/magiclist = list("fireball","smoke","blind","mindswap","forcewall","knock","horsemask","charge", "summonitem", "wandnothing", "wanddeath", "wandresurrection", "wandpolymorph", "wandteleport", "wanddoor", "wandfireball", "staffchange", "staffhealing", "armor", "scrying","staffdoor", "special")
var/list/magicspeciallist = list("staffchange","staffanimation", "wandbelt", "contract", "staffchaos", "necromantic")
@@ -63,6 +63,8 @@
new /obj/item/weapon/gun/projectile/shotgun/boltaction(get_turf(H))
if("speargun")
new /obj/item/weapon/gun/projectile/automatic/speargun(get_turf(H))
if("uzi")
new /obj/item/weapon/gun/projectile/automatic/mini_uzi(get_turf(H))
if("cannon")
var/obj/item/weapon/gun/energy/lasercannon/gat = new(get_turf(H))
gat.pin = new /obj/item/device/firing_pin //no authentication pins for spawned guns. fun allowed.
+2 -1
View File
@@ -48,7 +48,8 @@
else
var/obj/item/device/pda/P = usr.get_active_hand()
if(istype(P))
user.drop_item()
if(!user.drop_item())
return
storedpda = P
P.loc = src
P.add_fingerprint(usr)
+5 -5
View File
@@ -735,11 +735,11 @@
return
if(0)
if(istype(W, /obj/item/weapon/airalarm_electronics))
user << "<span class='notice'>You insert the circuit.</span>"
buildstage = 1
update_icon()
user.drop_item()
qdel(W)
if(user.unEquip(W))
user << "<span class='notice'>You insert the circuit.</span>"
buildstage = 1
update_icon()
qdel(W)
return
if(istype(W, /obj/item/weapon/wrench))
@@ -67,8 +67,10 @@
if ((istype(W, /obj/item/weapon/tank) && !( src.destroyed )))
if (src.holding)
return
if(!user.drop_item())
return
var/obj/item/weapon/tank/T = W
user.drop_item()
T.loc = src
src.holding = T
update_icon()
+2 -1
View File
@@ -243,7 +243,8 @@ text("<A href='?src=\ref[src];power=1'>[on ? "On" : "Off"]</A>"))
/obj/item/weapon/bucket_sensor/attackby(var/obj/item/W, mob/user as mob, params)
..()
if(istype(W, /obj/item/robot_parts/l_arm) || istype(W, /obj/item/robot_parts/r_arm))
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
var/turf/T = get_turf(loc)
var/obj/machinery/bot/cleanbot/A = new /obj/machinery/bot/cleanbot(T)
+22 -12
View File
@@ -554,7 +554,8 @@ Auto Patrol[]"},
switch(build_step)
if(0,1)
if(istype(W, /obj/item/robot_parts/l_leg) || istype(W, /obj/item/robot_parts/r_leg))
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
build_step++
user << "<span class='notice'>You add the robot leg to [src].</span>"
@@ -567,12 +568,15 @@ Auto Patrol[]"},
icon_state = "ed209_legs"
if(2)
var/newcolor = ""
if(istype(W, /obj/item/clothing/suit/redtag))
lasercolor = "r"
newcolor = "r"
else if(istype(W, /obj/item/clothing/suit/bluetag))
lasercolor = "b"
if(lasercolor || istype(W, /obj/item/clothing/suit/armor/vest))
user.drop_item()
newcolor = "b"
if(newcolor || istype(W, /obj/item/clothing/suit/armor/vest))
if(!user.unEquip(W))
return
lasercolor = newcolor
qdel(W)
build_step++
user << "<span class='notice'>You add the armor to [src].</span>"
@@ -601,7 +605,8 @@ Auto Patrol[]"},
if(!istype(W, /obj/item/clothing/head/helmet))
return
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
build_step++
user << "<span class='notice'>You add the helmet to [src].</span>"
@@ -611,7 +616,8 @@ Auto Patrol[]"},
if(5)
if(isprox(W))
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
build_step++
user << "<span class='notice'>You add the prox sensor to [src].</span>"
@@ -634,26 +640,29 @@ Auto Patrol[]"},
name = "wired ED-209 assembly"
if(7)
var/newname = ""
switch(lasercolor)
if("b")
if(!istype(W, /obj/item/weapon/gun/energy/laser/bluetag))
return
name = "bluetag ED-209 assembly"
newname = "bluetag ED-209 assembly"
if("r")
if(!istype(W, /obj/item/weapon/gun/energy/laser/redtag))
return
name = "redtag ED-209 assembly"
newname = "redtag ED-209 assembly"
if("")
if(!istype(W, /obj/item/weapon/gun/energy/gun/advtaser))
return
name = "taser ED-209 assembly"
newname = "taser ED-209 assembly"
else
return
if(!user.unEquip(W))
return
name = newname
build_step++
user << "<span class='notice'>You add [W] to [src].</span>"
item_state = "[lasercolor]ed209_taser"
icon_state = "[lasercolor]ed209_taser"
user.drop_item()
qdel(W)
if(8)
@@ -669,11 +678,12 @@ Auto Patrol[]"},
if(9)
if(istype(W, /obj/item/weapon/stock_parts/cell))
if(!user.unEquip(W))
return
build_step++
user << "<span class='notice'>You complete the ED-209.</span>"
var/turf/T = get_turf(src)
new /obj/machinery/bot/ed209(T,created_name,lasercolor)
user.drop_item()
qdel(W)
user.unEquip(src, 1)
qdel(src)
+6 -3
View File
@@ -244,8 +244,9 @@
if(!isnull(reagent_glass))
user << "<span class='warning'>There is already a beaker loaded!</span>"
return
if(!user.drop_item())
return
user.drop_item()
W.loc = src
reagent_glass = W
user << "<span class='notice'>You insert [W].</span>"
@@ -585,7 +586,8 @@
switch(build_step)
if(0)
if(istype(W, /obj/item/device/healthanalyzer))
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
build_step++
user << "<span class='notice'>You add the health sensor to [src].</span>"
@@ -594,7 +596,8 @@
if(1)
if(isprox(W))
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
build_step++
user << "<span class='notice'>You complete the Medibot. Beep boop!</span>"
+4 -2
View File
@@ -89,8 +89,9 @@ obj/machinery/bot/mulebot/bot_reset()
user << "<span class='notice'>Controls [(locked ? "locked" : "unlocked")].</span>"
else if(istype(I,/obj/item/weapon/stock_parts/cell) && open && !cell)
if(!user.drop_item())
return
var/obj/item/weapon/stock_parts/cell/C = I
user.drop_item()
C.loc = src
cell = C
updateDialog()
@@ -288,7 +289,8 @@ obj/machinery/bot/mulebot/bot_reset()
if(open && !cell)
var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
usr.drop_item()
if(!usr.drop_item())
return
cell = C
C.loc = src
C.add_fingerprint(usr)
+6 -3
View File
@@ -429,7 +429,8 @@ Auto Patrol: []"},
user << "<span class='notice'>You weld the hole in [src] shut!</span>"
else if(isprox(I) && (build_step == 1))
user.drop_item()
if(!user.unEquip(I))
return
build_step++
user << "<span class='notice'>You add the prox sensor to [src]!</span>"
overlays += "hs_eye"
@@ -437,7 +438,8 @@ Auto Patrol: []"},
qdel(I)
else if(((istype(I, /obj/item/robot_parts/l_arm)) || (istype(I, /obj/item/robot_parts/r_arm))) && (build_step == 2))
user.drop_item()
if(!user.unEquip(I))
return
build_step++
user << "<span class='notice'>You add the robot arm to [src]!</span>"
name = "helmet/signaler/prox sensor/robot arm assembly"
@@ -445,7 +447,8 @@ Auto Patrol: []"},
qdel(I)
else if((istype(I, /obj/item/weapon/melee/baton)) && (build_step >= 3))
user.drop_item()
if(!user.unEquip(I))
return
build_step++
user << "<span class='notice'>You complete the Securitron! Beep boop.</span>"
var/obj/machinery/bot/secbot/S = new /obj/machinery/bot/secbot
@@ -121,9 +121,10 @@
// Upgrades!
if(is_type_in_list(W, possible_upgrades) && !is_type_in_list(W, upgrades)) // Is a possible upgrade and isn't in the camera already.
if(!user.unEquip(W))
return
user << "<span class='notice'>You attach \the [W] into the assembly inner circuits.</span>"
upgrades += W
user.drop_item()
W.loc = src
return
+2 -1
View File
@@ -47,8 +47,9 @@
if(a.power_equip == 0) // There's no APC in this area, don't try to cheat power!
user << "<span class='warning'>The [name] blinks red as you try to insert the cell!</span>"
return
if(!user.drop_item())
return
user.drop_item()
W.loc = src
charging = W
user.visible_message("[user] inserts a cell into the charger.", "<span class='notice'>You insert a cell into the charger.</span>")
@@ -347,11 +347,12 @@
if(istype(P, /obj/item/weapon/circuitboard) && !circuit)
var/obj/item/weapon/circuitboard/B = P
if(B.board_type == "computer")
if(!user.drop_item())
return
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
icon_state = "1"
circuit = P
user.drop_item()
circuit.add_fingerprint(user)
P.loc = null
else
+10 -5
View File
@@ -49,16 +49,19 @@ var/time_last_changed_position = 0
var/obj/item/weapon/card/id/idcard = O
if(check_access(idcard))
if(!scan)
usr.drop_item()
if(!usr.drop_item())
return
idcard.loc = src
scan = idcard
else if(!modify)
usr.drop_item()
if(!usr.drop_item())
return
idcard.loc = src
modify = idcard
else
if(!modify)
usr.drop_item()
if(!usr.drop_item())
return
idcard.loc = src
modify = idcard
else
@@ -313,7 +316,8 @@ var/time_last_changed_position = 0
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
modify = I
authenticated = 0
@@ -326,7 +330,8 @@ var/time_last_changed_position = 0
else
var/obj/item/I = usr.get_active_hand()
if (istype(I, /obj/item/weapon/card/id))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
scan = I
authenticated = 0
+2 -1
View File
@@ -76,7 +76,8 @@
/obj/machinery/computer/cloning/attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/disk/data)) //INSERT SOME DISKETTES
if (!src.diskette)
user.drop_item()
if(!user.drop_item())
return ..()
W.loc = src
src.diskette = W
user << "<span class='notice'>You insert [W].</span>"
+5 -3
View File
@@ -20,9 +20,10 @@
var/sortBy = "name"
var/order = 1 // -1 = Descending - 1 = Ascending
/obj/machinery/computer/med_data/attackby(obj/item/O as obj, user as mob, params)
/obj/machinery/computer/med_data/attackby(obj/item/O as obj, mob/user as mob, params)
if(istype(O, /obj/item/weapon/card/id) && !scan)
usr.drop_item()
if(!user.drop_item())
return
O.loc = src
scan = O
user << "<span class='notice'>You insert [O].</span>"
@@ -215,7 +216,8 @@
else
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/weapon/card/id))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
src.scan = I
else if(href_list["logout"])
+2 -1
View File
@@ -92,7 +92,8 @@
if(href_list["id"] =="insert" && !istype(inserted_id))
var/obj/item/weapon/card/id/prisoner/I = usr.get_active_hand()
if(istype(I))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
inserted_id = I
else usr << "<span class='danger'>No valid ID.</span>"
+5 -3
View File
@@ -24,9 +24,10 @@
var/order = 1 // -1 = Descending - 1 = Ascending
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, user as mob, params)
/obj/machinery/computer/secure_data/attackby(obj/item/O as obj, mob/user as mob, params)
if(istype(O, /obj/item/weapon/card/id) && !scan)
usr.drop_item()
if(!user.drop_item())
return
O.loc = src
scan = O
user << "<span class='notice'>You insert [O].</span>"
@@ -299,7 +300,8 @@ What a mess.*/
else
var/obj/item/I = usr.get_active_hand()
if(istype(I, /obj/item/weapon/card/id))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
scan = I
@@ -39,7 +39,8 @@ var/list/possible_uplinker_IDs = list("Alfa","Bravo","Charlie","Delta","Echo","F
if(O.hidden_uplink)
var/obj/item/P = user.get_active_hand()
user.drop_item()
if(!user.drop_item())
return
uplinkholder = P
P.loc = src
P.add_fingerprint(user)
+4 -2
View File
@@ -108,10 +108,11 @@
return
var/obj/item/weapon/circuitboard/B = P
if(B.board_type == "machine")
if(!user.drop_item())
return
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "<span class='notice'>You add the circuit board to the frame.</span>"
circuit = P
user.drop_item()
P.loc = src
icon_state = "box_2"
state = 3
@@ -199,6 +200,8 @@
var/success
for(var/I in req_components)
if(istype(P, I) && (req_components[I] > 0))
if(!user.drop_item())
return
success=1
if(istype(P, /obj/item/stack/cable_coil))
var/obj/item/stack/cable_coil/CP = P
@@ -211,7 +214,6 @@
req_components[I]--
update_req_desc()
break
user.drop_item()
P.loc = src
components += P
req_components[I]--
+2 -1
View File
@@ -237,9 +237,10 @@
if(beaker)
user << "<span class='warning'>A beaker is already loaded into [src]!</span>"
return
if(!user.drop_item())
return
beaker = I
user.drop_item()
I.loc = src
user.visible_message("[user] places [I] in [src].", \
"<span class='notice'>You place [I] in [src].</span>")
+2 -1
View File
@@ -50,8 +50,9 @@
else if (istype(W, /obj/item/device/flash/handheld))
if (!bulb)
if(!user.drop_item())
return
user.visible_message("[user] installs [W] into [src].", "<span class='notice'>You install [W] into [src].</span>")
user.drop_item()
W.loc = src
bulb = W
power_change()
+2 -1
View File
@@ -77,8 +77,9 @@
if(!isnull(beaker))
user << "<span class='warning'>There is already a reagent container loaded!</span>"
return
if(!user.drop_item())
return
user.drop_item()
W.loc = src
beaker = W
user << "<span class='notice'>You attach \the [W] to \the [src].</span>"
+2 -1
View File
@@ -788,7 +788,8 @@ var/list/obj/machinery/newscaster/allCasters = list()
photo = null
if(istype(user.get_active_hand(), /obj/item/weapon/photo))
photo = user.get_active_hand()
user.drop_item()
if(!user.drop_item())
return
photo.loc = src
if(istype(user,/mob/living/silicon))
var/list/nametemp = list()
+2 -1
View File
@@ -72,7 +72,8 @@
add_fingerprint(user)
if (istype(W, /obj/item/pipe) || istype(W, /obj/item/pipe_meter))
usr << "<span class='notice'>You put [W] back into [src].</span>"
user.drop_item()
if(!user.drop_item())
return
qdel(W)
return
else if (istype(W, /obj/item/weapon/wrench))
+2 -1
View File
@@ -27,8 +27,9 @@
if(!gun.can_charge)
user << "<span class='notice'>Your gun has no external power connector.</span>"
return
if(!user.drop_item())
return
user.drop_item()
G.loc = src
charging = G
use_power = 2
+4 -2
View File
@@ -77,7 +77,8 @@
if(istype(I, /obj/item/weapon/coin))
var/obj/item/weapon/coin/C = I
if(prob(2))
user.drop_item()
if(!user.drop_item())
return
C.loc = loc
C.throw_at(user, 3, 10)
if(prob(10))
@@ -85,7 +86,8 @@
user << "<span class='warning'>[src] spits your coin back out!</span>"
else
user.drop_item()
if(!user.drop_item())
return
user << "<span class='notice'>You insert a [C.cmineral] coin into [src]'s slot!</span>"
balance += C.value
qdel(C)
+4 -2
View File
@@ -54,7 +54,8 @@
// insert cell
var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
user.drop_item()
if(!user.drop_item())
return
cell = C
C.loc = src
C.add_fingerprint(usr)
@@ -134,7 +135,8 @@
if(open && !cell)
var/obj/item/weapon/stock_parts/cell/C = usr.get_active_hand()
if(istype(C))
usr.drop_item()
if(!usr.drop_item())
return
cell = C
C.loc = src
C.add_fingerprint(usr)
+2 -1
View File
@@ -90,9 +90,10 @@
user << "<span class='warning'>The cover is screwed on, it won't pry off!</span>"
else if(istype(I, /obj/item/weapon/bombcore))
if(!payload)
if(!user.drop_item())
return
payload = I
user << "<span class='notice'>You place [payload] into [src].</span>"
user.drop_item()
payload.loc = src
else
user << "<span class='warning'>[payload] is already loaded into [src]! You'll have to remove it first.</span>"
@@ -168,7 +168,8 @@
var/obj/item/weapon/card/id/I = C.get_active_hand()
if(istype(I))
if(check_access(I))
C.drop_item()
if(!C.drop_item())
return
I.loc = src
auth = I
create_log("has logged in.", usr)
+4 -2
View File
@@ -170,7 +170,8 @@
return
if(junk_check(W))
if(!iscompartmentfull(user))
user.drop_item()
if(!user.drop_item())
return
W.loc = src
food_load(W)
user << "<span class='notice'>You insert [W] into [src]'s chef compartment.</span>"
@@ -250,7 +251,8 @@
attack_hand(user)
return
else if(istype(W, /obj/item/weapon/coin) && premium.len > 0)
user.drop_item()
if(!user.drop_item())
return
W.loc = src
coin = W
user << "<span class='notice'>You insert [W] into [src].</span>"
+4 -2
View File
@@ -188,7 +188,8 @@
if(istype(W,/obj/item/toy/crayon) ||istype(W,/obj/item/weapon/stamp))
if( state in list( 1, 3, 6 ) )
if(!crayon)
user.drop_item()
if(!user.drop_item())
return
crayon = W
crayon.loc = src
else
@@ -256,7 +257,8 @@
if(contents.len < 5)
if ( state in list(1, 3) )
user.drop_item()
if(!user.drop_item())
return
W.loc = src
state = 3
else
+4 -2
View File
@@ -675,7 +675,8 @@
var/obj/item/mecha_parts/mecha_equipment/E = W
spawn()
if(E.can_attach(src))
user.drop_item()
if(!user.drop_item())
return
E.attach(src)
user.visible_message("[user] attaches [W] to [src].", "<span class='notice'>You attach [W] to [src].</span>")
else
@@ -739,9 +740,10 @@
else if(istype(W, /obj/item/weapon/stock_parts/cell))
if(state==4)
if(!src.cell)
if(!user.drop_item())
return
var/obj/item/weapon/stock_parts/cell/C = W
user << "<span class='notice'>You install the powercell.</span>"
user.drop_item()
C.forceMove(src)
C.use(C.charge * 0.8)
src.cell = C
+2 -2
View File
@@ -379,8 +379,8 @@
M << "<span class='danger'>Your eyes start to bleed profusely!</span>"
if(prob(50))
if(M.stat != 2)
M << "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>"
M.drop_item()
if(M.drop_item())
M << "<span class='danger'>You drop what you're holding and clutch at your eyes!</span>"
M.eye_blurry += 10
M.Paralyse(1)
M.Weaken(2)
@@ -349,8 +349,9 @@
for(var/entry in expandables)
if(istype(W,entry))
if(!user.unEquip(W))
return
bugtype = expandables[entry]
user.drop_item()
W.loc = src
expansion = W
user << "<span class='notice'>You add [W] to [src].</span>"
@@ -47,7 +47,8 @@
/obj/item/device/laser_pointer/attackby(obj/item/W, mob/user, params)
if(istype(W, /obj/item/weapon/stock_parts/micro_laser))
if(!diode)
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
diode = W
user << "<span class='notice'>You install a [diode.name] in [src].</span>"
@@ -88,9 +88,10 @@
var/obj/item/weapon/light/L = W
if(L.status == 0) // LIGHT OKAY
if(uses < max_uses)
if(!user.unEquip(W))
return
AddUses(1)
user << "<span class='notice'>You insert the [L.name] into the [src.name]. You have [uses] lights remaining.</span>"
user.drop_item()
qdel(L)
return
else
@@ -253,12 +253,14 @@
return
if(!keyslot)
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
keyslot = W
else
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
keyslot2 = W
@@ -608,7 +608,8 @@
return
if(!keyslot)
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
keyslot = W
@@ -33,7 +33,8 @@
/obj/item/device/taperecorder/attackby(obj/item/I, mob/user, params)
if(!mytape && istype(I, /obj/item/device/tape))
user.drop_item()
if(!user.unEquip(I))
return
I.loc = src
mytape = I
user << "<span class='notice'>You insert [I] into [src].</span>"
@@ -20,15 +20,17 @@
return
if(!tank_one)
if(!user.unEquip(item))
return
tank_one = item
user.drop_item()
item.loc = src
user << "<span class='notice'>You attach the tank to the transfer valve.</span>"
if(item.w_class > w_class)
w_class = item.w_class
else if(!tank_two)
if(!user.unEquip(item))
return
tank_two = item
user.drop_item()
item.loc = src
user << "<span class='notice'>You attach the tank to the transfer valve.</span>"
if(item.w_class > w_class)
+18 -9
View File
@@ -102,28 +102,32 @@
return
if(istype(W, /obj/item/robot_parts/l_leg))
if(src.l_leg) return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.l_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_leg))
if(src.r_leg) return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.r_leg = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/l_arm))
if(src.l_arm) return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.l_arm = W
src.updateicon()
if(istype(W, /obj/item/robot_parts/r_arm))
if(src.r_arm) return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.r_arm = W
src.updateicon()
@@ -131,7 +135,8 @@
if(istype(W, /obj/item/robot_parts/chest))
if(src.chest) return
if(W:wires && W:cell)
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.chest = W
src.updateicon()
@@ -143,7 +148,8 @@
if(istype(W, /obj/item/robot_parts/head))
if(src.head) return
if(W:flash2 && W:flash1)
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.head = W
src.updateicon()
@@ -190,7 +196,8 @@
var/mob/living/silicon/robot/O = new /mob/living/silicon/robot(get_turf(loc))
if(!O) return
user.drop_item()
if(!user.unEquip(W))
return
O.invisibility = 0
//Transfer debug settings to new mob
@@ -297,7 +304,8 @@
user << "<span class='warning'>You have already inserted a cell!</span>"
return
else
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
src.cell = W
user << "<span class='notice'>You insert the cell.</span>"
@@ -324,7 +332,8 @@
user << "<span class='warning'>You can't use a broken flash!</span>"
return
else
user.drop_item()
if(!user.unEquip(W))
return
F.loc = src
if(src.flash1)
src.flash2 = F
+2 -1
View File
@@ -112,7 +112,8 @@ RCD
if((matter + R.ammoamt) > max_matter)
user << "<span class='warning'>The RCD can't hold any more matter-units!</span>"
return
user.drop_item()
if(!user.unEquip(W))
return
qdel(W)
matter += R.ammoamt
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
@@ -63,7 +63,8 @@
if(ink)
user << "<span class='notice'>\the [name] already contains \a [ink].</span>"
return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
user << "<span class='notice'>You install \the [W] into \the [name].</span>"
ink = W
+2 -1
View File
@@ -112,7 +112,8 @@
if(C.maxcharge < paddles.revivecost)
user << "<span class='notice'>[src] requires a higher capacity cell.</span>"
return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
bcell = W
user << "<span class='notice'>You install a cell in [src].</span>"
@@ -69,7 +69,8 @@
user << "<span class='notice'>You start planting the bomb...</span>"
if(do_after(user, 50) && in_range(user, target))
user.drop_item()
if(!user.unEquip(target))
return
src.target = target
loc = null
@@ -94,7 +94,8 @@
var/obj/item/device/assembly/igniter/I = W
if(I.secured) return
if(igniter) return
user.drop_item()
if(!user.unEquip(W))
return
I.loc = src
igniter = I
update_icon()
@@ -104,7 +105,8 @@
if(ptank)
user << "<span class='notice'>There appears to already be a plasma tank loaded in [src]!</span>"
return
user.drop_item()
if(!user.unEquip(W))
return
ptank = W
W.loc = src
update_icon()
@@ -68,8 +68,9 @@
return
else
if(I.reagents.total_volume)
if(!user.unEquip(I))
return
user << "<span class='notice'>You add [I] to the [initial(name)] assembly.</span>"
user.drop_item()
I.loc = src
beakers += I
else
@@ -79,8 +80,9 @@
var/obj/item/device/assembly_holder/A = I
if(isigniter(A.a_left) == isigniter(A.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it
return
if(!user.unEquip(I))
return
user.drop_item()
nadeassembly = A
A.master = src
A.loc = src
@@ -263,8 +265,9 @@
//make a special case you might as well do it explicitly. -Sayu
/obj/item/weapon/grenade/chem_grenade/large/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/slime_extract) && stage == WIRED)
if(!user.unEquip(I))
return
user << "<span class='notice'>You add [I] to the [initial(name)] assembly.</span>"
user.drop_item()
I.loc = src
beakers += I
else
+2 -1
View File
@@ -49,7 +49,8 @@
/obj/item/weapon/restraints/handcuffs/proc/apply_cuffs(mob/living/carbon/target, mob/user)
if(!target.handcuffed)
user.drop_item()
if(!user.drop_item())
return
//target.throw_alert("handcuffed", src) // Can't do this because escaping cuffs isn't standardized. Also zipties.
if(trashtype)
target.handcuffed = new trashtype(target)
@@ -174,15 +174,15 @@
/obj/item/weapon/implant/loyalty/implanted(mob/target)
..()
if((target.mind in (ticker.mode.head_revolutionaries | ticker.mode.A_bosses | ticker.mode.B_bosses)) || is_shadow_or_thrall(target))
if((target.mind in ticker.mode.head_revolutionaries) || is_shadow_or_thrall(target))
target.visible_message("<span class='warning'>[target] seems to resist the implant!</span>", "<span class='warning'>You feel the corporate tendrils of Nanotrasen try to invade your mind!</span>")
return 0
if(target.mind in (ticker.mode.A_gang | ticker.mode.B_gang))
ticker.mode.remove_gangster(target.mind, exclude_bosses=0)
return 0
if(target.mind in ticker.mode.revolutionaries)
ticker.mode.remove_revolutionary(target.mind)
target << "<span class='notice'>You feel a surge of loyalty towards Nanotrasen.</span>"
if(target.mind in (ticker.mode.cult| ticker.mode.A_bosses | ticker.mode.B_bosses | ticker.mode.A_gang | ticker.mode.B_gang))
target << "<span class='warning'>You feel the corporate tendrils of Nanotrasen try to invade your mind!</span>"
else
target << "<span class='notice'>You feel a surge of loyalty towards Nanotrasen.</span>"
return 1
@@ -36,7 +36,8 @@
..()
if(istype(C, /obj/item/weapon/implantcase))
if(!case)
user.drop_item()
if(!user.unEquip(C))
return
C.loc = src
case = C
else
+2 -1
View File
@@ -8,8 +8,9 @@
/obj/item/weapon/pai_cable/proc/plugin(obj/machinery/M as obj, mob/user as mob)
if(istype(M, /obj/machinery/door) || istype(M, /obj/machinery/camera))
if(!user.drop_item())
return
user.visible_message("[user] inserts [src] into a data port on [M].", "<span class='notice'>You insert [src] into a data port on [M].</span>", "<span class='italics'>You hear the satisfying click of a wire jack fastening into place.</span>")
user.drop_item()
src.loc = M
src.machine = M
else
@@ -61,8 +61,9 @@
if(IW.w_class > src.w_class)
user << "<span class='warning'>\The [IW] is too large to fit into \the [src]!</span>"
return
if(!user.unEquip(W))
return
user << "<span class='notice'>You load \the [IW] into \the [src].</span>"
user.drop_item()
loadedItems.Add(IW)
loadedWeightClass += IW.w_class
IW.loc = src
@@ -127,9 +128,10 @@
if(src.tank)
user << "<span class='warning'>\The [src] already has a tank.</span>"
return
if(!user.unEquip(thetank))
return
user << "<span class='notice'>You hook \the [thetank] up to \the [src].</span>"
src.tank = thetank
user.drop_item()
thetank.loc = src
src.update_icons()
+2 -1
View File
@@ -71,7 +71,8 @@
if(C.maxcharge < hitcost)
user << "<span class='notice'>[src] requires a higher capacity cell.</span>"
return
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
bcell = W
user << "<span class='notice'>You install a cell in [src].</span>"
+5 -2
View File
@@ -41,11 +41,12 @@
anchored = 0
state = 0
if(istype(P, /obj/item/weapon/circuitboard/aicore) && !circuit)
if(!user.drop_item())
return
playsound(loc, 'sound/items/Deconstruct.ogg', 50, 1)
user << "<span class='notice'>You place the circuit board inside the frame.</span>"
icon_state = "1"
circuit = P
user.drop_item()
P.loc = src
if(istype(P, /obj/item/weapon/screwdriver) && circuit)
playsound(loc, 'sound/items/Screwdriver.ogg', 50, 1)
@@ -152,11 +153,13 @@
user << "<span class='warning'>This MMI is mindless!</span>"
return
if(!user.drop_item())
return
ticker.mode.remove_cultist(M.brainmob.mind, 1)
ticker.mode.remove_revolutionary(M.brainmob.mind, 1)
ticker.mode.remove_gangster(M.brainmob.mind, 1)
user.drop_item()
M.loc = src
brain = M
usr << "<span class='notice'>Added a brain.</span>"
+2 -1
View File
@@ -194,7 +194,8 @@ LINEN BINS
/obj/structure/bedsheetbin/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/bedsheet))
user.drop_item()
if(!user.drop_item())
return
I.loc = src
sheets.Add(I)
amount++
@@ -84,8 +84,7 @@
/obj/structure/closet/crate/bin/place(var/mob/user, var/obj/item/I)
if(contents.len >= storage_capacity)
return 1
if(!opened)
user.drop_item()
if(!opened && user.drop_item())
insert(I, 0, 1)
return 1
return 0
@@ -58,8 +58,9 @@
if(O:wielded)
user << "<span class='warning'>Unwield the axe first.</span>"
return
if(!user.drop_item())
return
fireaxe = O
user.drop_item()
src.contents += O
user << "<span class='caution'>You place the fire axe back in the [src.name].</span>"
update_icon()
@@ -286,8 +286,9 @@
return
else if(istype(W, /obj/item/device/electropack))
if(rigged)
if(!user.drop_item())
return
user << "<span class='notice'>You attach [W] to [src].</span>"
user.drop_item()
W.loc = src
return
else if(istype(W, /obj/item/weapon/wirecutters))
@@ -532,8 +532,9 @@
if(do_after(user, 40))
if( src.state != 1 )
return
if(!user.drop_item())
return
user.drop_item()
W.loc = src
user << "<span class='notice'>You install the airlock electronics.</span>"
src.state = 2
+2 -1
View File
@@ -29,7 +29,8 @@
return
if(istype(O, /obj/item/weapon/extinguisher))
if(!has_extinguisher && opened)
user.drop_item()
if(!user.drop_item())
return
contents += O
has_extinguisher = O
user << "<span class='notice'>You place [O] in [src].</span>"
+2 -1
View File
@@ -201,7 +201,8 @@
else if(istype(W, /obj/item/pipe))
var/obj/item/pipe/P = W
if (P.pipe_type in list(0, 1, 5)) //simple pipes, simple bends, and simple manifolds.
user.drop_item()
if(!user.drop_item())
return
P.loc = src.loc
user << "<span class='notice'>You fit the pipe into \the [src].</span>"
else
+2 -1
View File
@@ -39,7 +39,8 @@
return
if(istype(I, gun_category))
if(contents.len < capacity && open)
user.drop_item()
if(!user.drop_item())
return
contents += I
user << "<span class='notice'>You place [I] in [src].</span>"
update_icon()
+4 -2
View File
@@ -29,7 +29,8 @@
playsound(loc, 'sound/effects/slosh.ogg', 25, 1)
/obj/structure/janitorialcart/proc/put_in_cart(obj/item/I, mob/user)
user.drop_item()
if(!user.drop_item())
return
I.loc = src
updateUsrDialog()
user << "<span class='notice'>You put [I] into [src].</span>"
@@ -199,8 +200,9 @@
user << "Hold [I] in one of your hands while you drive this [callme]."
else if(istype(I, /obj/item/weapon/storage/bag/trash))
if(keytype == /obj/item/key/janitor)
if(!user.drop_item())
return
user << "<span class='notice'>You hook the trashbag onto the [callme].</span>"
user.drop_item()
I.loc = src
mybag = I
else if(istype(I, /obj/item/janiupgrade))
+2 -1
View File
@@ -19,9 +19,10 @@
/obj/structure/noticeboard/attackby(var/obj/item/weapon/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/paper))
if(notices < 5)
if(!user.drop_item())
return
O.add_fingerprint(user)
add_fingerprint(user)
user.drop_item()
O.loc = src
notices++
icon_state = "nboard0[notices]" //update sprite
@@ -17,8 +17,9 @@
/obj/structure/stool/bed/chair/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
..()
if(istype(W, /obj/item/assembly/shock_kit))
if(!user.drop_item())
return
var/obj/item/assembly/shock_kit/SK = W
user.drop_item()
var/obj/structure/stool/bed/chair/e_chair/E = new /obj/structure/stool/bed/chair/e_chair(src.loc)
playsound(src.loc, 'sound/items/Deconstruct.ogg', 50, 1)
E.dir = dir
+2 -1
View File
@@ -625,8 +625,9 @@
/obj/item/weapon/rack_parts/attack_self(mob/user as mob)
user << "<span class='notice'>You start constructing rack...</span>"
if (do_after(user, 50))
if(!user.drop_item())
return
var/obj/structure/rack/R = new /obj/structure/rack( user.loc )
R.add_fingerprint(user)
user.drop_item()
qdel(src)
return
@@ -50,7 +50,8 @@
/obj/structure/dispenser/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/tank/internals/oxygen) || istype(I, /obj/item/weapon/tank/internals/air) || istype(I, /obj/item/weapon/tank/internals/anesthetic))
if(oxygentanks < 10)
user.drop_item()
if(!user.drop_item())
return
I.loc = src
oxytanks.Add(I)
oxygentanks++
@@ -59,7 +60,8 @@
user << "<span class='notice'>[src] is full.</span>"
if(istype(I, /obj/item/weapon/tank/internals/plasma))
if(plasmatanks < 10)
user.drop_item()
if(!user.drop_item())
return
I.loc = src
platanks.Add(I)
plasmatanks++
+1 -2
View File
@@ -23,11 +23,10 @@
/obj/structure/target_stake/attackby(obj/item/target/T, mob/user)
if(pinned_target)
return
if(istype(T))
if(istype(T) && user.drop_item())
pinned_target = T
T.pinnedLoc = src
T.density = 1
user.drop_item()
T.layer = OBJ_LAYER + 0.1
T.loc = loc
user << "<span class='notice'>You slide the target into the stake.</span>"
@@ -190,9 +190,10 @@
//Adding airlock electronics for access. Step 6 complete.
else if(istype(W, /obj/item/weapon/airlock_electronics))
if(!user.drop_item())
return
playsound(loc, 'sound/items/Screwdriver.ogg', 100, 1)
user.visible_message("[user] installs the electronics into the airlock assembly.", "<span class='notice'>You start to install electronics into the airlock assembly...</span>")
user.drop_item()
W.loc = src
if(do_after(user, 40))
@@ -63,8 +63,7 @@
if(..())
return
if(istype(C,/obj/item/weapon/light/bulb)) //only for light tiles
if(state)
user.drop_item()
if(state && user.drop_item())
qdel(C)
state = 0 //fixing it by bashing it with a light bulb, fun eh?
update_icon()
+2 -1
View File
@@ -89,10 +89,11 @@
var/mob/M = user
if(isigniter(S.a_left) == isigniter(S.a_right)) //Check if either part of the assembly has an igniter, but if both parts are igniters, then fuck it
return
if(!M.drop_item()) //Remove the assembly from your hands
return
var/obj/item/device/onetankbomb/R = new /obj/item/device/onetankbomb(loc)
M.drop_item() //Remove the assembly from your hands
M.remove_from_mob(src) //Remove the tank from your character,in case you were holding it
M.put_in_hands(R) //Equips the bomb if possible, or puts it on the floor.
+2 -1
View File
@@ -235,7 +235,8 @@ BLIND // can't see anything
return 0
else
if(user)
user.drop_item()
if(!user.drop_item())
return
hastie = I
I.loc = src
if(user && notifyAttach)
+4 -2
View File
@@ -196,7 +196,8 @@
var/obj/item/device/flashlight/seclite/S = A
if(can_flashlight)
if(!F)
user.drop_item()
if(!user.unEquip(A))
return
user << "<span class='notice'>You click [S] into place on [src].</span>"
if(S.on)
SetLuminosity(0)
@@ -228,7 +229,8 @@
if(helmetCam)
user << "<span class='notice'>[src] already has a mounted camera.</span>"
return
user.drop_item()
if(!user.unEquip(A))
return
helmetCam = new /obj/machinery/camera/portable(src)
helmetCam.assembly = A
A.loc = helmetCam
@@ -44,7 +44,8 @@
else if((ingredients.len >= ingMax) || (reagents.total_volume >= volume))
user << "<span class='warning'>You can't add more ingredients to [src]!</span>"
else
user.drop_item()
if(!user.unEquip(I))
return
if(S.trash)
new S.trash(get_turf(user))
S.trash = null //we remove the plate before adding the ingredient
@@ -63,7 +63,8 @@
if(istype(O, /obj/item/weapon/reagent_containers/food/drinks/drinkingglass))
var/obj/item/weapon/reagent_containers/food/drinks/drinkingglass/DG = O
if(!DG.reagents.total_volume) //glass is empty
user.drop_item()
if(!user.drop_item())
return
qdel(DG)
glasses++
user << "<span class='notice'>The [src] accepts the drinking glass, sterilizing it.</span>"
@@ -72,7 +73,8 @@
user << "<span class='warning'>The [src] is at full capacity.</span>"
else
var/obj/item/weapon/reagent_containers/food/snacks/S = O
user.drop_item()
if(!user.drop_item())
return
S.loc = src
if(stored_food[sanitize(S.name)])
stored_food[sanitize(S.name)]++
@@ -60,7 +60,8 @@
if(target.stat == 0)
user << "<span class='danger'>The monkey is struggling far too much to put it in the recycler.</span>"
else
user.drop_item()
if(!user.drop_item())
return
qdel(target)
user << "<span class='notice'>You stuff the monkey in the machine.</span>"
playsound(src.loc, 'sound/machines/juicer.ogg', 50, 1)
+1 -1
View File
@@ -897,7 +897,7 @@ obj/item/weapon/reagent_containers/food/snacks/grown/shell/eggy/add_juice()
/obj/item/weapon/reagent_containers/food/snacks/grown/tomato/blue/bluespace/attack_self(var/mob/user)
squish(user)
user.drop_item()
user.unEquip(src)
src.visible_message("[user] squashes the [src.name].","<span class='italics'>You hear a smack.</span>")
qdel(src)
+2 -1
View File
@@ -63,7 +63,8 @@
if(2)
if(is_type_in_list(I, allowed_books))
user.drop_item()
if(!user.drop_item())
return
I.loc = src
update_icon()
else if(istype(I, /obj/item/weapon/storage/bag/books))
+4 -2
View File
@@ -447,7 +447,8 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums
/obj/machinery/libraryscanner/attackby(var/obj/O as obj, var/mob/user as mob, params)
if(istype(O, /obj/item/weapon/book))
user.drop_item()
if(!user.drop_item())
return
O.loc = src
/obj/machinery/libraryscanner/attack_hand(var/mob/user as mob)
@@ -505,7 +506,8 @@ var/global/list/datum/cachedbook/cachedbooks // List of our cached book datums
if(busy)
user << "<span class='warning'>The book binder is busy. Please wait for completion of previous operation.</span>"
return
user.drop_item()
if(!user.drop_item())
return
O.loc = src
user.visible_message("[user] loads some paper into [src].", "You load some paper into [src].")
src.visible_message("[src] begins to hum as it warms up its printing drums.")
+8 -4
View File
@@ -89,7 +89,8 @@
if(istype(W,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I) && !istype(inserted_id))
usr.drop_item()
if(!user.drop_item())
return
I.loc = src
inserted_id = I
interact(user)
@@ -184,7 +185,8 @@
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
inserted_id = I
else usr << "<span class='warning'>No valid ID.</span>"
@@ -333,7 +335,8 @@
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/I = usr.get_active_hand()
if(istype(I))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
inserted_id = I
else usr << "<span class='danger'>No valid ID.</span>"
@@ -356,7 +359,8 @@
if(istype(I,/obj/item/weapon/card/id))
var/obj/item/weapon/card/id/C = usr.get_active_hand()
if(istype(C) && !istype(inserted_id))
usr.drop_item()
if(!usr.drop_item())
return
C.loc = src
inserted_id = C
interact(user)
@@ -86,7 +86,8 @@
else if(href_list["choice"] == "insert")
var/obj/item/weapon/card/id/prisoner/I = usr.get_active_hand()
if(istype(I))
usr.drop_item()
if(!usr.drop_item())
return
I.loc = src
inserted_id = I
else usr << "<span class='warning'>Invalid ID.</span>"
+2 -1
View File
@@ -60,8 +60,9 @@
..()
if (istype(W, /obj/item/weapon/coin))
var/obj/item/weapon/coin/C = W
if(!user.drop_item())
return
user << "<span class='notice'>You add the [C.name] into the bag.</span>"
usr.drop_item()
contents += C
if (istype(W, /obj/item/weapon/moneybag))
var/obj/item/weapon/moneybag/C = W
+2 -1
View File
@@ -11,7 +11,8 @@
/obj/structure/ore_box/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/weapon/ore))
user.drop_item()
if(!user.drop_item())
return
W.loc = src
if (istype(W, /obj/item/weapon/storage))
var/obj/item/weapon/storage/S = W
+2 -1
View File
@@ -41,6 +41,8 @@
user << "<span class='warning'>You aren't sure where this brain came from, but you're pretty sure it's a useless brain!</span>"
return
if(!user.unEquip(src))
return
var/mob/living/carbon/brain/B = newbrain.brainmob
if(!B.key)
var/mob/dead/observer/ghost = B.get_ghost()
@@ -58,7 +60,6 @@
dead_mob_list -= brainmob //Update dem lists
living_mob_list += brainmob
user.drop_item()
newbrain.loc = src //P-put your brain in it
brain = newbrain
+13 -10
View File
@@ -450,7 +450,8 @@
else if(cell)
user << "<span class='warning'>There is a power cell already installed!</span>"
else
user.drop_item()
if(!user.drop_item())
return
W.loc = src
cell = W
user << "<span class='notice'>You insert the power cell.</span>"
@@ -525,27 +526,29 @@
else if(istype(W, /obj/item/borg/upgrade/))
var/obj/item/borg/upgrade/U = W
if(!opened)
usr << "<span class='warning'>You must access the borgs internals!</span>"
user << "<span class='warning'>You must access the borgs internals!</span>"
else if(!src.module && U.require_module)
usr << "<span class='warning'>The borg must choose a module before it can be upgraded!</span>"
user << "<span class='warning'>The borg must choose a module before it can be upgraded!</span>"
else if(U.locked)
usr << "<span class='warning'>The upgrade is locked and cannot be used yet!</span>"
user << "<span class='warning'>The upgrade is locked and cannot be used yet!</span>"
else
if(!user.drop_item())
return
if(U.action(src))
usr << "<span class='notice'>You apply the upgrade to [src].</span>"
usr.drop_item()
user << "<span class='notice'>You apply the upgrade to [src].</span>"
U.loc = src
else
usr << "<span class='danger'>Upgrade error.</span>"
user << "<span class='danger'>Upgrade error.</span>"
else if(istype(W, /obj/item/device/toner))
if(toner >= tonermax)
usr << "<span class='warning'>The toner level of [src] is at it's highest level possible!</span>"
user << "<span class='warning'>The toner level of [src] is at it's highest level possible!</span>"
else
if(!user.drop_item())
return
toner = 40
usr.drop_item()
qdel(W)
usr << "<span class='notice'>You fill the toner level of [src] to its max capacity.</span>"
user << "<span class='notice'>You fill the toner level of [src] to its max capacity.</span>"
else
if(W.force && W.damtype != STAMINA) //only sparks if real damage is dealt.
+4 -2
View File
@@ -28,7 +28,8 @@
/obj/item/weapon/clipboard/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/paper))
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
toppaper = W
user << "<span class='notice'>You clip the paper onto \the [src].</span>"
@@ -76,7 +77,8 @@
if(!haspen)
if(istype(usr.get_active_hand(), /obj/item/weapon/pen))
var/obj/item/weapon/pen/W = usr.get_active_hand()
usr.drop_item()
if(!usr.unEquip(W))
return
W.loc = src
haspen = W
usr << "<span class='notice'>You slot [W] into [src].</span>"
+2 -1
View File
@@ -43,8 +43,9 @@
/obj/structure/filingcabinet/attackby(obj/item/P, mob/user, params)
if(istype(P, /obj/item/weapon/paper) || istype(P, /obj/item/weapon/folder) || istype(P, /obj/item/weapon/photo) || istype(P, /obj/item/documents))
if(!user.drop_item())
return
user << "<span class='notice'>You put [P] in [src].</span>"
user.drop_item()
P.loc = src
icon_state = "[initial(icon_state)]-open"
sleep(5)
+2 -1
View File
@@ -31,7 +31,8 @@
/obj/item/weapon/folder/attackby(obj/item/weapon/W, mob/user, params)
if(istype(W, /obj/item/weapon/paper) || istype(W, /obj/item/weapon/photo) || istype(W, /obj/item/documents))
user.drop_item()
if(!user.unEquip(W))
return
W.loc = src
user << "<span class='notice'>You put [W] into [src].</span>"
update_icon()
+2 -1
View File
@@ -55,8 +55,9 @@
/obj/item/weapon/hand_labeler/attackby(obj/item/I as obj, mob/user as mob, params)
..()
if(istype(I, /obj/item/hand_labeler_refill))
if(!user.unEquip(I))
return
user << "<span class='notice'>You insert [I] into [src].</span>"
user.drop_item()
qdel(I)
labels_left = initial(labels_left)
return
+2 -1
View File
@@ -71,7 +71,8 @@
if(!istype(i))
return ..()
user.drop_item()
if(!user.unEquip(i))
return
i.loc = src
user << "<span class='notice'>You put [i] in [src].</span>"
papers.Add(i)
+18 -12
View File
@@ -96,19 +96,25 @@
if(M.client)
M.mind_initialize() //give them a mind datum if they don't have one.
if(user.mind in ticker.mode.A_bosses)
if(ticker.mode.add_gangster(M.mind,"A"))
M.Paralyse(5)
cooldown(max(0,ticker.mode.B_gang.len - ticker.mode.A_gang.len))
else
user << "<span class='warning'>This mind is resistant to recruitment!</span>"
var/recruitable = ticker.mode.add_gangster(M.mind,"A")
switch(recruitable)
if(2)
M.Paralyse(5)
cooldown(max(0,ticker.mode.B_gang.len - ticker.mode.A_gang.len))
if(1)
user << "<span class='warning'>This mind has already been recruited by another gang!</span>"
else
user << "<span class='warning'>This mind is resistant to recruitment!</span>"
else if(user.mind in ticker.mode.B_bosses)
if(ticker.mode.add_gangster(M.mind,"B"))
M.Paralyse(5)
cooldown(max(0,ticker.mode.A_gang.len - ticker.mode.B_gang.len))
else
user << "<span class='warning'>This mind is resistant to recruitment!</span>"
else
user << "<span class='warning'>This mind is so vacant that it is not susceptible to influence!</span>"
var/recruitable = ticker.mode.add_gangster(M.mind,"B")
switch(recruitable)
if(2)
M.Paralyse(5)
cooldown(max(0,ticker.mode.A_gang.len - ticker.mode.B_gang.len))
if(1)
user << "<span class='warning'>This mind has already been recruited by another gang!</span>"
else
user << "<span class='warning'>This mind is resistant to recruitment!</span>"
/obj/item/weapon/pen/gang/proc/cooldown(modifier)
cooldown = 1
+6 -3
View File
@@ -223,7 +223,8 @@
/obj/machinery/photocopier/attackby(obj/item/O, mob/user, params)
if(istype(O, /obj/item/weapon/paper))
if(copier_empty())
user.drop_item()
if(!user.drop_item())
return
copy = O
O.loc = src
user << "<span class='notice'>You insert [O] into [src].</span>"
@@ -234,7 +235,8 @@
else if(istype(O, /obj/item/weapon/photo))
if(copier_empty())
user.drop_item()
if(!user.drop_item())
return
photocopy = O
O.loc = src
user << "<span class='notice'>You insert [O] into [src].</span>"
@@ -245,7 +247,8 @@
else if(istype(O, /obj/item/device/toner))
if(toner <= 0)
user.drop_item()
if(!user.drop_item())
return
qdel(O)
toner = 40
user << "<span class='notice'>You insert [O] into [src].</span>"

Some files were not shown because too many files have changed in this diff Show More