Bleeding edgy refresh (#303)

* not code stuff

* other things

* global vars, defines, helpers

* onclick hud stuff, orphans, world.dm

* controllers and datums

* game folder

* everything not client/mobs in modules

* client folder

* stage 1 mob stuff

* simple animal things

* silicons

* carbon things

* ayylmaos and monkeys

* hyoomahn

* icons n shit

* sprite fixes

* compile fixes

* some fixes I cherrypicked.

* qdel fixes

* forgot brain refractors
This commit is contained in:
Poojawa
2017-03-21 11:44:10 -05:00
committed by GitHub
parent 099a6c8764
commit f67e9f6d87
1476 changed files with 344416 additions and 40694 deletions
+6 -6
View File
@@ -14,11 +14,11 @@
return
if(AI.malf_picker)
AI.malf_picker.processing_time += 50
AI << "<span class='userdanger'>[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead.</span>"
to_chat(AI, "<span class='userdanger'>[user] has attempted to upgrade you with combat software that you already possess. You gain 50 points to spend on Malfunction Modules instead.</span>")
else
AI << "<span class='userdanger'>[user] has upgraded you with combat software!</span>"
to_chat(AI, "<span class='userdanger'>[user] has upgraded you with combat software!</span>")
AI.add_malf_picker()
user << "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>"
to_chat(user, "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>")
qdel(src)
@@ -34,7 +34,7 @@
return
if(AI.eyeobj)
AI.eyeobj.relay_speech = TRUE
AI << "<span class='userdanger'>[user] has upgraded you with surveillance software!</span>"
AI << "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations."
user << "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>"
to_chat(AI, "<span class='userdanger'>[user] has upgraded you with surveillance software!</span>")
to_chat(AI, "Via a combination of hidden microphones and lip reading software, you are able to use your cameras to listen in on conversations.")
to_chat(user, "<span class='notice'>You upgrade [AI]. [src] is consumed in the process.</span>")
qdel(src)
+31 -31
View File
@@ -57,13 +57,13 @@
mode = 0
switch(mode)
if(0)
user << "Power reset. Hugs!"
to_chat(user, "Power reset. Hugs!")
if(1)
user << "Power increased!"
to_chat(user, "Power increased!")
if(2)
user << "BZZT. Electrifying arms..."
to_chat(user, "BZZT. Electrifying arms...")
if(3)
user << "ERROR: ARM ACTUATORS OVERLOADED."
to_chat(user, "ERROR: ARM ACTUATORS OVERLOADED.")
/obj/item/borg/cyborghug/attack(mob/living/M, mob/living/silicon/robot/user)
if(M == user)
@@ -172,7 +172,7 @@
mode = "charge"
else
mode = "draw"
user << "<span class='notice'>You toggle [src] to \"[mode]\" mode.</span>"
to_chat(user, "<span class='notice'>You toggle [src] to \"[mode]\" mode.</span>")
update_icon()
/obj/item/borg/charger/afterattack(obj/item/target, mob/living/silicon/robot/user, proximity_flag)
@@ -182,10 +182,10 @@
if(is_type_in_list(target, charge_machines))
var/obj/machinery/M = target
if((M.stat & (NOPOWER|BROKEN)) || !M.anchored)
user << "<span class='warning'>[M] is unpowered!</span>"
to_chat(user, "<span class='warning'>[M] is unpowered!</span>")
return
user << "<span class='notice'>You connect to [M]'s power line...</span>"
to_chat(user, "<span class='notice'>You connect to [M]'s power line...</span>")
while(do_after(user, 15, target = M, progress = 0))
if(!user || !user.cell || mode != "draw")
return
@@ -198,27 +198,27 @@
M.use_power(200)
user << "<span class='notice'>You stop charging youself.</span>"
to_chat(user, "<span class='notice'>You stop charging youself.</span>")
else if(is_type_in_list(target, charge_items))
var/obj/item/weapon/stock_parts/cell/cell = target
if(!istype(cell))
cell = locate(/obj/item/weapon/stock_parts/cell) in target
if(!cell)
user << "<span class='warning'>[target] has no power cell!</span>"
to_chat(user, "<span class='warning'>[target] has no power cell!</span>")
return
if(istype(target, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/E = target
if(!E.can_charge)
user << "<span class='warning'>[target] has no power port!</span>"
to_chat(user, "<span class='warning'>[target] has no power port!</span>")
return
if(!cell.charge)
user << "<span class='warning'>[target] has no power!</span>"
to_chat(user, "<span class='warning'>[target] has no power!</span>")
user << "<span class='notice'>You connect to [target]'s power port...</span>"
to_chat(user, "<span class='notice'>You connect to [target]'s power port...</span>")
while(do_after(user, 15, target = target, progress = 0))
if(!user || !user.cell || mode != "draw")
@@ -237,26 +237,26 @@
break
target.update_icon()
user << "<span class='notice'>You stop charging youself.</span>"
to_chat(user, "<span class='notice'>You stop charging youself.</span>")
else if(is_type_in_list(target, charge_items))
var/obj/item/weapon/stock_parts/cell/cell = target
if(!istype(cell))
cell = locate(/obj/item/weapon/stock_parts/cell) in target
if(!cell)
user << "<span class='warning'>[target] has no power cell!</span>"
to_chat(user, "<span class='warning'>[target] has no power cell!</span>")
return
if(istype(target, /obj/item/weapon/gun/energy))
var/obj/item/weapon/gun/energy/E = target
if(!E.can_charge)
user << "<span class='warning'>[target] has no power port!</span>"
to_chat(user, "<span class='warning'>[target] has no power port!</span>")
return
if(cell.charge >= cell.maxcharge)
user << "<span class='warning'>[target] is already charged!</span>"
to_chat(user, "<span class='warning'>[target] is already charged!</span>")
user << "<span class='notice'>You connect to [target]'s power port...</span>"
to_chat(user, "<span class='notice'>You connect to [target]'s power port...</span>")
while(do_after(user, 15, target = target, progress = 0))
if(!user || !user.cell || mode != "charge")
@@ -275,7 +275,7 @@
break
target.update_icon()
user << "<span class='notice'>You stop charging [target].</span>"
to_chat(user, "<span class='notice'>You stop charging [target].</span>")
/obj/item/device/harmalarm
name = "Sonic Harm Prevention Tool"
@@ -287,20 +287,20 @@
/obj/item/device/harmalarm/emag_act(mob/user)
emagged = !emagged
if(emagged)
user << "<font color='red'>You short out the safeties on the [src]!</font>"
to_chat(user, "<font color='red'>You short out the safeties on the [src]!</font>")
else
user << "<font color='red'>You reset the safeties on the [src]!</font>"
to_chat(user, "<font color='red'>You reset the safeties on the [src]!</font>")
/obj/item/device/harmalarm/attack_self(mob/user)
var/safety = !emagged
if(cooldown > world.time)
user << "<font color='red'>The device is still recharging!</font>"
to_chat(user, "<font color='red'>The device is still recharging!</font>")
return
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
if(R.cell.charge < 1200)
user << "<font color='red'>You don't have enough charge to do this!</font>"
to_chat(user, "<font color='red'>You don't have enough charge to do this!</font>")
return
R.cell.charge -= 1000
if(R.emagged)
@@ -319,7 +319,7 @@
log_game("[user.ckey]([user]) used a Cyborg Harm Alarm in ([user.x],[user.y],[user.z])")
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
R.connected_ai << "<br><span class='notice'>NOTICE - Peacekeeping 'HARM ALARM' used by: [user]</span><br>"
to_chat(R.connected_ai, "<br><span class='notice'>NOTICE - Peacekeeping 'HARM ALARM' used by: [user]</span><br>")
return
@@ -375,7 +375,7 @@
/obj/item/borg/lollipop/proc/dispense(atom/A, mob/user)
if(candy <= 0)
user << "<span class='warning'>No lollipops left in storage!</span>"
to_chat(user, "<span class='warning'>No lollipops left in storage!</span>")
return FALSE
var/turf/T = get_turf(A)
if(!T || !istype(T) || !isopenturf(T))
@@ -387,13 +387,13 @@
new /obj/item/weapon/reagent_containers/food/snacks/lollipop(T)
candy--
check_amount()
user << "<span class='notice'>Dispensing lollipop...</span>"
to_chat(user, "<span class='notice'>Dispensing lollipop...</span>")
playsound(src.loc, 'sound/machines/click.ogg', 50, 1)
return TRUE
/obj/item/borg/lollipop/proc/shootL(atom/target, mob/living/user, params)
if(candy <= 0)
user << "<span class='warning'>Not enough lollipops left!</span>"
to_chat(user, "<span class='warning'>Not enough lollipops left!</span>")
return FALSE
candy--
var/obj/item/ammo_casing/caseless/lollipop/A = new /obj/item/ammo_casing/caseless/lollipop(src)
@@ -408,7 +408,7 @@
/obj/item/borg/lollipop/proc/shootG(atom/target, mob/living/user, params) //Most certainly a good idea.
if(candy <= 0)
user << "<span class='warning'>Not enough gumballs left!</span>"
to_chat(user, "<span class='warning'>Not enough gumballs left!</span>")
return FALSE
candy--
var/obj/item/ammo_casing/caseless/gumball/A = new /obj/item/ammo_casing/caseless/gumball(src)
@@ -427,7 +427,7 @@
if(iscyborg(user))
var/mob/living/silicon/robot/R = user
if(!R.cell.use(12))
user << "<span class='warning'>Not enough power.</span>"
to_chat(user, "<span class='warning'>Not enough power.</span>")
return FALSE
if(R.emagged)
hitdamage = emaggedhitdamage
@@ -446,13 +446,13 @@
switch(mode)
if(1)
mode++
user << "<span class='notice'>Module is now throwing lollipops.</span>"
to_chat(user, "<span class='notice'>Module is now throwing lollipops.</span>")
if(2)
mode++
user << "<span class='notice'>Module is now blasting gumballs.</span>"
to_chat(user, "<span class='notice'>Module is now blasting gumballs.</span>")
if(3)
mode = 1
user << "<span class='notice'>Module is now dispensing lollipops.</span>"
to_chat(user, "<span class='notice'>Module is now dispensing lollipops.</span>")
..()
/obj/item/ammo_casing/caseless/gumball
+20 -20
View File
@@ -70,13 +70,13 @@
if (M.use(1))
var/obj/item/weapon/ed209_assembly/B = new /obj/item/weapon/ed209_assembly
B.loc = get_turf(src)
user << "<span class='notice'>You arm the robot frame.</span>"
to_chat(user, "<span class='notice'>You arm the robot frame.</span>")
var/holding_this = user.get_inactive_held_item()==src
qdel(src)
if (holding_this)
user.put_in_inactive_hand(B)
else
user << "<span class='warning'>You need one sheet of metal to start building ED-209!</span>"
to_chat(user, "<span class='warning'>You need one sheet of metal to start building ED-209!</span>")
return
else if(istype(W, /obj/item/bodypart/l_leg/robot))
if(src.l_leg)
@@ -130,15 +130,15 @@
src.chest = CH
src.updateicon()
else if(!CH.wired)
user << "<span class='warning'>You need to attach wires to it first!</span>"
to_chat(user, "<span class='warning'>You need to attach wires to it first!</span>")
else
user << "<span class='warning'>You need to attach a cell to it first!</span>"
to_chat(user, "<span class='warning'>You need to attach a cell to it first!</span>")
else if(istype(W, /obj/item/bodypart/head/robot))
var/obj/item/bodypart/head/robot/HD = W
for(var/X in HD.contents)
if(istype(X, /obj/item/organ))
user << "<span class='warning'>There are organs inside [HD]!</span>"
to_chat(user, "<span class='warning'>There are organs inside [HD]!</span>")
return
if(src.head)
return
@@ -150,39 +150,39 @@
src.head = HD
src.updateicon()
else
user << "<span class='warning'>You need to attach a flash to it first!</span>"
to_chat(user, "<span class='warning'>You need to attach a flash to it first!</span>")
else if (istype(W, /obj/item/device/multitool))
if(check_completion())
Interact(user)
else
user << "<span class='warning'>The endoskeleton must be assembled before debugging can begin!</span>"
to_chat(user, "<span class='warning'>The endoskeleton must be assembled before debugging can begin!</span>")
else if(istype(W, /obj/item/device/mmi))
var/obj/item/device/mmi/M = W
if(check_completion())
if(!isturf(loc))
user << "<span class='warning'>You can't put [M] in, the frame has to be standing on the ground to be perfectly precise!</span>"
to_chat(user, "<span class='warning'>You can't put [M] in, the frame has to be standing on the ground to be perfectly precise!</span>")
return
if(!M.brainmob)
user << "<span class='warning'>Sticking an empty [M.name] into the frame would sort of defeat the purpose!</span>"
to_chat(user, "<span class='warning'>Sticking an empty [M.name] into the frame would sort of defeat the purpose!</span>")
return
var/mob/living/brain/BM = M.brainmob
if(!BM.key || !BM.mind)
user << "<span class='warning'>The MMI indicates that their mind is completely unresponsive; there's no point!</span>"
to_chat(user, "<span class='warning'>The MMI indicates that their mind is completely unresponsive; there's no point!</span>")
return
if(!BM.client) //braindead
user << "<span class='warning'>The MMI indicates that their mind is currently inactive; it might change!</span>"
to_chat(user, "<span class='warning'>The MMI indicates that their mind is currently inactive; it might change!</span>")
return
if(BM.stat == DEAD || (M.brain && M.brain.damaged_brain))
user << "<span class='warning'>Sticking a dead brain into the frame would sort of defeat the purpose!</span>"
to_chat(user, "<span class='warning'>Sticking a dead brain into the frame would sort of defeat the purpose!</span>")
return
if(jobban_isbanned(BM, "Cyborg"))
user << "<span class='warning'>This [M.name] does not seem to fit!</span>"
to_chat(user, "<span class='warning'>This [M.name] does not seem to fit!</span>")
return
if(!user.temporarilyRemoveItemFromInventory(W))
@@ -221,8 +221,8 @@
if(O.mind && O.mind.special_role)
O.mind.store_memory("As a cyborg, you must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.")
O << "<span class='userdanger'>You have been robotized!</span>"
O << "<span class='danger'>You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.</span>"
to_chat(O, "<span class='userdanger'>You have been robotized!</span>")
to_chat(O, "<span class='danger'>You must obey your silicon laws and master AI above all else. Your objectives will consider you to be dead.</span>")
O.job = "Cyborg"
@@ -243,13 +243,13 @@
if(!locomotion)
O.lockcharge = 1
O.update_canmove()
O << "<span class='warning'>Error: Servo motors unresponsive.</span>"
to_chat(O, "<span class='warning'>Error: Servo motors unresponsive.</span>")
else
user << "<span class='warning'>The MMI must go in after everything else!</span>"
to_chat(user, "<span class='warning'>The MMI must go in after everything else!</span>")
else if(istype(W,/obj/item/weapon/pen))
user << "<span class='warning'>You need to use a multitool to name [src]!</span>"
to_chat(user, "<span class='warning'>You need to use a multitool to name [src]!</span>")
else
return ..()
@@ -272,7 +272,7 @@
var/mob/living/living_user = usr
var/obj/item/item_in_hand = living_user.get_active_held_item()
if(!istype(item_in_hand, /obj/item/device/multitool))
living_user << "<span class='warning'>You need a multitool!</span>"
to_chat(living_user, "<span class='warning'>You need a multitool!</span>")
return
if(href_list["Name"])
@@ -287,7 +287,7 @@
else if(href_list["Master"])
forced_ai = select_active_ai(usr)
if(!forced_ai)
usr << "<span class='error'>No active AIs detected.</span>"
to_chat(usr, "<span class='error'>No active AIs detected.</span>")
else if(href_list["Law"])
lawsync = !lawsync
+16 -16
View File
@@ -17,11 +17,11 @@
/obj/item/borg/upgrade/proc/action(mob/living/silicon/robot/R)
if(R.stat == DEAD)
usr << "<span class='notice'>[src] will not function on a deceased cyborg.</span>"
to_chat(usr, "<span class='notice'>[src] will not function on a deceased cyborg.</span>")
return 1
if(module_type && !istype(R.module, module_type))
R << "Upgrade mounting error! No suitable hardpoint detected!"
usr << "There's no mounting point for the module!"
to_chat(R, "Upgrade mounting error! No suitable hardpoint detected!")
to_chat(usr, "There's no mounting point for the module!")
return 1
/obj/item/borg/upgrade/rename
@@ -56,7 +56,7 @@
/obj/item/borg/upgrade/restart/action(mob/living/silicon/robot/R)
if(R.health < 0)
usr << "<span class='warning'>You have to repair the cyborg before using this module!</span>"
to_chat(usr, "<span class='warning'>You have to repair the cyborg before using this module!</span>")
return 0
if(R.mind)
@@ -78,8 +78,8 @@
if(..())
return
if(R.speed < 0)
R << "<span class='notice'>A VTEC unit is already installed!</span>"
usr << "<span class='notice'>There's no room for another VTEC unit!</span>"
to_chat(R, "<span class='notice'>A VTEC unit is already installed!</span>")
to_chat(usr, "<span class='notice'>There's no room for another VTEC unit!</span>")
return
R.speed = -2 // Gotta go fast.
@@ -100,11 +100,11 @@
var/obj/item/weapon/gun/energy/disabler/cyborg/T = locate() in R.module.modules
if(!T)
usr << "<span class='notice'>There's no disabler in this unit!</span>"
to_chat(usr, "<span class='notice'>There's no disabler in this unit!</span>")
return
if(T.charge_delay <= 2)
R << "<span class='notice'>A cooling unit is already installed!</span>"
usr << "<span class='notice'>There's no room for another cooling unit!</span>"
to_chat(R, "<span class='notice'>A cooling unit is already installed!</span>")
to_chat(usr, "<span class='notice'>There's no room for another cooling unit!</span>")
return
T.charge_delay = max(2 , T.charge_delay - 4)
@@ -122,7 +122,7 @@
return
if(R.ionpulse)
usr << "<span class='notice'>This unit already has ion thrusters installed!</span>"
to_chat(usr, "<span class='notice'>This unit already has ion thrusters installed!</span>")
return
R.ionpulse = TRUE
@@ -222,7 +222,7 @@
var/obj/item/borg/upgrade/selfrepair/U = locate() in R
if(U)
usr << "<span class='warning'>This unit is already equipped with a self-repair module.</span>"
to_chat(usr, "<span class='warning'>This unit is already equipped with a self-repair module.</span>")
return 0
cyborg = R
@@ -243,10 +243,10 @@
/obj/item/borg/upgrade/selfrepair/ui_action_click()
on = !on
if(on)
cyborg << "<span class='notice'>You activate the self-repair module.</span>"
to_chat(cyborg, "<span class='notice'>You activate the self-repair module.</span>")
START_PROCESSING(SSobj, src)
else
cyborg << "<span class='notice'>You deactivate the self-repair module.</span>"
to_chat(cyborg, "<span class='notice'>You deactivate the self-repair module.</span>")
STOP_PROCESSING(SSobj, src)
update_icon()
@@ -271,12 +271,12 @@
if(cyborg && (cyborg.stat != DEAD) && on)
if(!cyborg.cell)
cyborg << "<span class='warning'>Self-repair module deactivated. Please, insert the power cell.</span>"
to_chat(cyborg, "<span class='warning'>Self-repair module deactivated. Please, insert the power cell.</span>")
deactivate()
return
if(cyborg.cell.charge < powercost * 2)
cyborg << "<span class='warning'>Self-repair module deactivated. Please recharge.</span>"
to_chat(cyborg, "<span class='warning'>Self-repair module deactivated. Please recharge.</span>")
deactivate()
return
@@ -301,7 +301,7 @@
msgmode = "critical"
else if(cyborg.health < cyborg.maxHealth)
msgmode = "normal"
cyborg << "<span class='notice'>Self-repair is active in <span class='boldnotice'>[msgmode]</span> mode.</span>"
to_chat(cyborg, "<span class='notice'>Self-repair is active in <span class='boldnotice'>[msgmode]</span> mode.</span>")
msg_cooldown = world.time
else
deactivate()