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:
Arokha Sieyes
2018-09-27 18:01:09 -04:00
1318 changed files with 19791 additions and 86128 deletions

View File

@@ -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

View File

@@ -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)

View File

@@ -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()

View File

@@ -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

View File

@@ -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)

View File

@@ -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--