mirror of
https://github.com/CHOMPStation2/CHOMPStation2.git
synced 2025-12-11 10:43:20 +00:00
Merge branch 'master' of https://github.com/VOREStation/Polaris into sync-09272018
# Conflicts: # code/__defines/holomap.dm # code/__defines/mobs.dm # code/_helpers/icons.dm # code/_helpers/unsorted.dm # code/_onclick/hud/hud.dm # code/_onclick/item_attack.dm # code/controllers/Processes/supply.dm # code/controllers/subsystems/planets.dm # code/datums/supplypacks/munitions.dm # code/datums/supplypacks/science.dm # code/datums/supplypacks/security.dm # code/datums/supplypacks/supply.dm # code/game/area/Space Station 13 areas.dm # code/game/atoms_movable.dm # code/game/machinery/autolathe.dm # code/game/machinery/doors/door.dm # code/game/machinery/jukebox.dm # code/game/machinery/recharger.dm # code/game/machinery/vending.dm # code/game/mecha/equipment/tools/medical_tools.dm # code/game/mecha/equipment/weapons/weapons.dm # code/game/objects/items/devices/PDA/PDA.dm # code/game/objects/items/devices/megaphone.dm # code/game/objects/items/poi_items.dm # code/game/objects/items/weapons/implants/implantlanguage.dm # code/game/objects/items/weapons/storage/firstaid.dm # code/game/objects/items/weapons/tools/weldingtool.dm # code/game/objects/structures/flora/trees.dm # code/game/objects/structures/plasticflaps.dm # code/game/supplyshuttle.dm # code/game/turfs/simulated/wall_attacks.dm # code/modules/admin/admin_verbs.dm # code/modules/assembly/infrared.dm # code/modules/client/client procs.dm # code/modules/client/preference_setup/loadout/loadout_utility.dm # code/modules/client/preferences.dm # code/modules/clothing/suits/miscellaneous.dm # code/modules/holomap/holomap_datum.dm # code/modules/holomap/station_holomap.dm # code/modules/integrated_electronics/core/printer.dm # code/modules/mining/machine_processing.dm # code/modules/mob/living/carbon/human/human_defense.dm # code/modules/mob/living/carbon/human/species/virtual_reality/avatar.dm # code/modules/mob/living/death.dm # code/modules/mob/living/silicon/ai/ai.dm # code/modules/mob/living/silicon/pai/pai.dm # code/modules/mob/living/silicon/robot/robot.dm # code/modules/mob/living/simple_animal/animals/parrot.dm # code/modules/mob/mob_movement.dm # code/modules/organs/organ_external.dm # code/modules/organs/organ_icon.dm # code/modules/organs/subtypes/standard.dm # code/modules/planet/weather.dm # code/modules/power/cable.dm # code/modules/power/fusion/core/core_control.dm # code/modules/power/fusion/fuel_assembly/fuel_control.dm # code/modules/power/fusion/gyrotron/gyrotron_control.dm # code/modules/projectiles/gun.dm # code/modules/reagents/Chemistry-Reagents/Chemistry-Reagents-Food-Drinks.dm # config/names/first_name_skrell.txt # config/names/last_name_skrell.txt # icons/mob/head.dmi # icons/mob/robots.dmi # icons/mob/species/tajaran/helmet.dmi # icons/obj/ammo.dmi # icons/obj/gun.dmi # icons/obj/mining.dmi # icons/obj/projectiles.dmi # icons/obj/rig_modules.dmi # icons/obj/surgery.dmi # icons/turf/walls.dmi # maps/southern_cross/southern_cross-1.dmm # maps/southern_cross/southern_cross-3.dmm # maps/southern_cross/southern_cross-6.dmm # maps/southern_cross/southern_cross-8.dmm # maps/submaps/surface_submaps/mountains/backup/IceCave1.dmm # maps/submaps/surface_submaps/mountains/backup/IceCave1A.dmm # maps/submaps/surface_submaps/mountains/backup/IceCave1B.dmm # maps/submaps/surface_submaps/mountains/backup/IceCave1C.dmm # maps/submaps/surface_submaps/mountains/crashedcontainmentshuttle.dmm # maps/submaps/surface_submaps/mountains/deadspy.dmm # maps/submaps/surface_submaps/mountains/mountains_areas.dm # maps/submaps/surface_submaps/plains/Thiefc.dmm # maps/~map_system/maps.dm # vorestation.dme
This commit is contained in:
@@ -3,7 +3,7 @@
|
||||
/atom/proc/singularity_act()
|
||||
return
|
||||
|
||||
/atom/proc/singularity_pull()
|
||||
/atom/proc/singularity_pull(S, current_size)
|
||||
return
|
||||
|
||||
/mob/living/singularity_act()
|
||||
@@ -11,8 +11,9 @@
|
||||
gib()
|
||||
return 20
|
||||
|
||||
/mob/living/singularity_pull(S)
|
||||
/mob/living/singularity_pull(S, current_size)
|
||||
step_towards(src, S)
|
||||
apply_effect(current_size * 3, IRRADIATE, blocked = getarmor(null, "rad"))
|
||||
|
||||
/mob/living/carbon/human/singularity_act()
|
||||
var/gain = 20
|
||||
@@ -30,11 +31,12 @@
|
||||
var/list/handlist = list(l_hand, r_hand)
|
||||
for(var/obj/item/hand in handlist)
|
||||
if(prob(current_size*5) && hand.w_class >= ((11-current_size)/2) && unEquip(hand))
|
||||
step_towards(hand, src)
|
||||
src << "<span class = 'warning'>The [S] pulls \the [hand] from your grip!</span>"
|
||||
apply_effect(current_size * 3, IRRADIATE)
|
||||
if(shoes)
|
||||
if(shoes.item_flags & NOSLIP) return 0
|
||||
step_towards(hand, S)
|
||||
to_chat(src, "<span class = 'warning'>The [S] pulls \the [hand] from your grip!</span>")
|
||||
|
||||
if(!lying && (!shoes || !(shoes.item_flags & NOSLIP)) && (!species || !(species.flags & NOSLIP)) && prob(current_size*5))
|
||||
to_chat(src, "<span class='danger'>A strong gravitational force slams you to the ground!</span>")
|
||||
Weaken(current_size)
|
||||
..()
|
||||
|
||||
/obj/singularity_act()
|
||||
@@ -73,7 +75,7 @@
|
||||
return
|
||||
|
||||
/obj/machinery/power/supermatter/shard/singularity_act()
|
||||
src.loc = null
|
||||
src.forceMove(null)
|
||||
qdel(src)
|
||||
return 5000
|
||||
|
||||
@@ -88,7 +90,7 @@
|
||||
SetUniversalState(/datum/universal_state/supermatter_cascade)
|
||||
log_admin("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
|
||||
message_admins("New super singularity made by eating a SM crystal [prints]. Last touched by [src.fingerprintslast].")
|
||||
src.loc = null
|
||||
src.forceMove(null)
|
||||
qdel(src)
|
||||
return 50000
|
||||
|
||||
|
||||
@@ -54,30 +54,30 @@ var/global/list/rad_collectors = list()
|
||||
investigate_log("turned [active?"<font color='green'>on</font>":"<font color='red'>off</font>"] by [user.key]. [P?"Fuel: [round(P.air_contents.gas["phoron"]/0.29)]%":"<font color='red'>It is empty</font>"].","singulo")
|
||||
return
|
||||
else
|
||||
user << "<font color='red'>The controls are locked!</font>"
|
||||
to_chat(user, "<font color='red'>The controls are locked!</font>")
|
||||
return
|
||||
|
||||
|
||||
/obj/machinery/power/rad_collector/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/tank/phoron))
|
||||
if(!src.anchored)
|
||||
user << "<font color='red'>The [src] needs to be secured to the floor first.</font>"
|
||||
to_chat(user, "<font color='red'>The [src] needs to be secured to the floor first.</font>")
|
||||
return 1
|
||||
if(src.P)
|
||||
user << "<font color='red'>There's already a phoron tank loaded.</font>"
|
||||
to_chat(user, "<font color='red'>There's already a phoron tank loaded.</font>")
|
||||
return 1
|
||||
user.drop_item()
|
||||
src.P = W
|
||||
W.loc = src
|
||||
update_icons()
|
||||
return 1
|
||||
else if(istype(W, /obj/item/weapon/crowbar))
|
||||
else if(W.is_crowbar())
|
||||
if(P && !src.locked)
|
||||
eject()
|
||||
return 1
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
else if(W.is_wrench())
|
||||
if(P)
|
||||
user << "<font color='blue'>Remove the phoron tank first.</font>"
|
||||
to_chat(user, "<font color='blue'>Remove the phoron tank first.</font>")
|
||||
return 1
|
||||
playsound(src, W.usesound, 75, 1)
|
||||
src.anchored = !src.anchored
|
||||
@@ -93,18 +93,18 @@ var/global/list/rad_collectors = list()
|
||||
if (src.allowed(user))
|
||||
if(active)
|
||||
src.locked = !src.locked
|
||||
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
|
||||
to_chat(user, "The controls are now [src.locked ? "locked." : "unlocked."]")
|
||||
else
|
||||
src.locked = 0 //just in case it somehow gets locked
|
||||
user << "<font color='red'>The controls can only be locked when the [src] is active.</font>"
|
||||
to_chat(user, "<font color='red'>The controls can only be locked when the [src] is active.</font>")
|
||||
else
|
||||
user << "<font color='red'>Access denied!</font>"
|
||||
to_chat(user, "<font color='red'>Access denied!</font>")
|
||||
return 1
|
||||
return ..()
|
||||
|
||||
/obj/machinery/power/rad_collector/examine(mob/user)
|
||||
if (..(user, 3))
|
||||
user << "The meter indicates that \the [src] is collecting [last_power] W."
|
||||
to_chat(user, "The meter indicates that \the [src] is collecting [last_power] W.")
|
||||
return 1
|
||||
|
||||
/obj/machinery/power/rad_collector/ex_act(severity)
|
||||
|
||||
@@ -65,18 +65,18 @@
|
||||
/obj/machinery/power/emitter/proc/activate(mob/user as mob)
|
||||
if(state == 2)
|
||||
if(!powernet)
|
||||
user << "\The [src] isn't connected to a wire."
|
||||
to_chat(user, "\The [src] isn't connected to a wire.")
|
||||
return 1
|
||||
if(!src.locked)
|
||||
if(src.active==1)
|
||||
src.active = 0
|
||||
user << "You turn off [src]."
|
||||
to_chat(user, "You turn off [src].")
|
||||
message_admins("Emitter turned off by [key_name(user, user.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
log_game("EMITTER([x],[y],[z]) OFF by [key_name(user)]")
|
||||
investigate_log("turned <font color='red'>off</font> by [user.key]","singulo")
|
||||
else
|
||||
src.active = 1
|
||||
user << "You turn on [src]."
|
||||
to_chat(user, "You turn on [src].")
|
||||
src.shot_number = 0
|
||||
src.fire_delay = get_initial_fire_delay()
|
||||
message_admins("Emitter turned on by [key_name(user, user.client)](<A HREF='?_src_=holder;adminmoreinfo=\ref[user]'>?</A>) in ([x],[y],[z] - <A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[x];Y=[y];Z=[z]'>JMP</a>)",0,1)
|
||||
@@ -84,9 +84,9 @@
|
||||
investigate_log("turned <font color='green'>on</font> by [user.key]","singulo")
|
||||
update_icon()
|
||||
else
|
||||
user << "<span class='warning'>The controls are locked!</span>"
|
||||
to_chat(user, "<span class='warning'>The controls are locked!</span>")
|
||||
else
|
||||
user << "<span class='warning'>\The [src] needs to be firmly secured to the floor first.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [src] needs to be firmly secured to the floor first.</span>")
|
||||
return 1
|
||||
|
||||
|
||||
@@ -146,9 +146,9 @@
|
||||
|
||||
/obj/machinery/power/emitter/attackby(obj/item/W, mob/user)
|
||||
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
if(W.is_wrench())
|
||||
if(active)
|
||||
user << "Turn off [src] first."
|
||||
to_chat(user, "Turn off [src] first.")
|
||||
return
|
||||
switch(state)
|
||||
if(0)
|
||||
@@ -167,17 +167,17 @@
|
||||
src.anchored = 0
|
||||
disconnect_from_network()
|
||||
if(2)
|
||||
user << "<span class='warning'>\The [src] needs to be unwelded from the floor.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [src] needs to be unwelded from the floor.</span>")
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/weldingtool))
|
||||
var/obj/item/weapon/weldingtool/WT = W
|
||||
if(active)
|
||||
user << "Turn off [src] first."
|
||||
to_chat(user, "Turn off [src] first.")
|
||||
return
|
||||
switch(state)
|
||||
if(0)
|
||||
user << "<span class='warning'>\The [src] needs to be wrenched to the floor.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [src] needs to be wrenched to the floor.</span>")
|
||||
if(1)
|
||||
if (WT.remove_fuel(0,user))
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
@@ -187,10 +187,10 @@
|
||||
if (do_after(user,20 * WT.toolspeed))
|
||||
if(!src || !WT.isOn()) return
|
||||
state = 2
|
||||
user << "You weld [src] to the floor."
|
||||
to_chat(user, "You weld [src] to the floor.")
|
||||
connect_to_network()
|
||||
else
|
||||
user << "<span class='warning'>You need more welding fuel to complete this task.</span>"
|
||||
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
|
||||
if(2)
|
||||
if (WT.remove_fuel(0,user))
|
||||
playsound(loc, WT.usesound, 50, 1)
|
||||
@@ -200,44 +200,40 @@
|
||||
if (do_after(user,20 * WT.toolspeed))
|
||||
if(!src || !WT.isOn()) return
|
||||
state = 1
|
||||
user << "You cut [src] free from the floor."
|
||||
to_chat(user, "You cut [src] free from the floor.")
|
||||
disconnect_from_network()
|
||||
else
|
||||
user << "<span class='warning'>You need more welding fuel to complete this task.</span>"
|
||||
to_chat(user, "<span class='warning'>You need more welding fuel to complete this task.</span>")
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/stack/material) && W.get_material_name() == DEFAULT_WALL_MATERIAL)
|
||||
var/amt = Ceiling(( initial(integrity) - integrity)/10)
|
||||
if(!amt)
|
||||
user << "<span class='notice'>\The [src] is already fully repaired.</span>"
|
||||
to_chat(user, "<span class='notice'>\The [src] is already fully repaired.</span>")
|
||||
return
|
||||
var/obj/item/stack/P = W
|
||||
if(P.amount < amt)
|
||||
user << "<span class='warning'>You don't have enough sheets to repair this! You need at least [amt] sheets.</span>"
|
||||
to_chat(user, "<span class='warning'>You don't have enough sheets to repair this! You need at least [amt] sheets.</span>")
|
||||
return
|
||||
user << "<span class='notice'>You begin repairing \the [src]...</span>"
|
||||
to_chat(user, "<span class='notice'>You begin repairing \the [src]...</span>")
|
||||
if(do_after(user, 30))
|
||||
if(P.use(amt))
|
||||
user << "<span class='notice'>You have repaired \the [src].</span>"
|
||||
to_chat(user, "<span class='notice'>You have repaired \the [src].</span>")
|
||||
integrity = initial(integrity)
|
||||
return
|
||||
else
|
||||
user << "<span class='warning'>You don't have enough sheets to repair this! You need at least [amt] sheets.</span>"
|
||||
to_chat(user, "<span class='warning'>You don't have enough sheets to repair this! You need at least [amt] sheets.</span>")
|
||||
return
|
||||
|
||||
if(istype(W, /obj/item/weapon/card/id) || istype(W, /obj/item/device/pda))
|
||||
if(emagged)
|
||||
user << "<span class='warning'>The lock seems to be broken.</span>"
|
||||
to_chat(user, "<span class='warning'>The lock seems to be broken.</span>")
|
||||
return
|
||||
if(src.allowed(user))
|
||||
if(active)
|
||||
src.locked = !src.locked
|
||||
user << "The controls are now [src.locked ? "locked." : "unlocked."]"
|
||||
else
|
||||
src.locked = 0 //just in case it somehow gets locked
|
||||
user << "<span class='warning'>The controls can only be locked when [src] is online.</span>"
|
||||
src.locked = !src.locked
|
||||
to_chat(user, "The controls are now [src.locked ? "locked." : "unlocked."]")
|
||||
else
|
||||
user << "<span class='warning'>Access denied.</span>"
|
||||
to_chat(user, "<span class='warning'>Access denied.</span>")
|
||||
return
|
||||
..()
|
||||
return
|
||||
@@ -274,11 +270,11 @@
|
||||
var/integrity_percentage = round((integrity / initial(integrity)) * 100)
|
||||
switch(integrity_percentage)
|
||||
if(0 to 30)
|
||||
user << "<span class='danger'>\The [src] is close to falling apart!</span>"
|
||||
to_chat(user, "<span class='danger'>\The [src] is close to falling apart!</span>")
|
||||
if(31 to 70)
|
||||
user << "<span class='danger'>\The [src] is damaged.</span>"
|
||||
to_chat(user, "<span class='danger'>\The [src] is damaged.</span>")
|
||||
if(77 to 99)
|
||||
user << "<span class='warning'>\The [src] is slightly damaged.</span>"
|
||||
to_chat(user, "<span class='warning'>\The [src] is slightly damaged.</span>")
|
||||
|
||||
//R-UST port
|
||||
/obj/machinery/power/emitter/proc/get_initial_fire_delay()
|
||||
|
||||
@@ -103,7 +103,7 @@ field_generator power level display
|
||||
if(active)
|
||||
user << "The [src] needs to be off."
|
||||
return
|
||||
else if(istype(W, /obj/item/weapon/wrench))
|
||||
else if(W.is_wrench())
|
||||
switch(state)
|
||||
if(0)
|
||||
state = 1
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
if(src) qdel(src)
|
||||
|
||||
/obj/machinery/the_singularitygen/attackby(obj/item/W, mob/user)
|
||||
if(istype(W, /obj/item/weapon/wrench))
|
||||
if(W.is_wrench())
|
||||
anchored = !anchored
|
||||
playsound(src, W.usesound, 75, 1)
|
||||
if(anchored)
|
||||
|
||||
@@ -207,35 +207,35 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
|
||||
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
|
||||
if(0)
|
||||
if(iswrench(O))
|
||||
if(O.is_wrench())
|
||||
playsound(src, O.usesound, 75, 1)
|
||||
src.anchored = 1
|
||||
user.visible_message("[user.name] secures the [src.name] to the floor.", \
|
||||
"You secure the external bolts.")
|
||||
temp_state++
|
||||
if(1)
|
||||
if(iswrench(O))
|
||||
if(O.is_wrench())
|
||||
playsound(src, O.usesound, 75, 1)
|
||||
src.anchored = 0
|
||||
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
|
||||
"You remove the external bolts.")
|
||||
temp_state--
|
||||
else if(iscoil(O))
|
||||
else if(istype(O, /obj/item/stack/cable_coil))
|
||||
if(O:use(1,user))
|
||||
user.visible_message("[user.name] adds wires to the [src.name].", \
|
||||
"You add some wires.")
|
||||
temp_state++
|
||||
if(2)
|
||||
if(iswirecutter(O))//TODO:Shock user if its on?
|
||||
if(O.is_wirecutter())//TODO:Shock user if its on?
|
||||
user.visible_message("[user.name] removes some wires from the [src.name].", \
|
||||
"You remove some wires.")
|
||||
temp_state--
|
||||
else if(isscrewdriver(O))
|
||||
else if(O.is_screwdriver())
|
||||
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
|
||||
"You close the access panel.")
|
||||
temp_state++
|
||||
if(3)
|
||||
if(isscrewdriver(O))
|
||||
if(O.is_screwdriver())
|
||||
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
|
||||
"You open the access panel.")
|
||||
temp_state--
|
||||
@@ -346,35 +346,35 @@ So, hopefully this is helpful if any more icons are to be added/changed/wonderin
|
||||
var/temp_state = src.construction_state
|
||||
switch(src.construction_state)//TODO:Might be more interesting to have it need several parts rather than a single list of steps
|
||||
if(0)
|
||||
if(iswrench(O))
|
||||
if(O.is_wrench())
|
||||
playsound(src, O.usesound, 75, 1)
|
||||
src.anchored = 1
|
||||
user.visible_message("[user.name] secures the [src.name] to the floor.", \
|
||||
"You secure the external bolts.")
|
||||
temp_state++
|
||||
if(1)
|
||||
if(iswrench(O))
|
||||
if(O.is_wrench())
|
||||
playsound(src, O.usesound, 75, 1)
|
||||
src.anchored = 0
|
||||
user.visible_message("[user.name] detaches the [src.name] from the floor.", \
|
||||
"You remove the external bolts.")
|
||||
temp_state--
|
||||
else if(iscoil(O))
|
||||
else if(istype(O, /obj/item/stack/cable_coil))
|
||||
if(O:use(1))
|
||||
user.visible_message("[user.name] adds wires to the [src.name].", \
|
||||
"You add some wires.")
|
||||
temp_state++
|
||||
if(2)
|
||||
if(iswirecutter(O))//TODO:Shock user if its on?
|
||||
if(O.is_wirecutter())//TODO:Shock user if its on?
|
||||
user.visible_message("[user.name] removes some wires from the [src.name].", \
|
||||
"You remove some wires.")
|
||||
temp_state--
|
||||
else if(isscrewdriver(O))
|
||||
else if(O.is_screwdriver())
|
||||
user.visible_message("[user.name] closes the [src.name]'s access panel.", \
|
||||
"You close the access panel.")
|
||||
temp_state++
|
||||
if(3)
|
||||
if(isscrewdriver(O))
|
||||
if(O.is_screwdriver())
|
||||
user.visible_message("[user.name] opens the [src.name]'s access panel.", \
|
||||
"You open the access panel.")
|
||||
temp_state--
|
||||
|
||||
Reference in New Issue
Block a user