mirror of
https://github.com/ParadiseSS13/Paradise.git
synced 2026-08-29 06:57:42 +01:00
LINDA, Stage 1
This commit ports the base system of LINDA from TG. This version of linda is the original version, with none of -tg-'s fixes, rewrites, or other such improvements attached. The mob ignite system has been 100% removed, as LINDA does not support this normally. It may be added back in when the improvements and refactors to LINDA have been ported.
This commit is contained in:
@@ -1223,10 +1223,10 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
if (istype(A, /obj/machinery/atmospherics/pipe/tank))
|
||||
var/obj/icon = A
|
||||
for (var/mob/O in viewers(user, null))
|
||||
O << "\red [user] has used [src] on \icon[icon] [A]"
|
||||
|
||||
var/obj/machinery/atmospherics/pipe/tank/T = A
|
||||
for (var/mob/O in viewers(user, null))
|
||||
O << "\red [user] has used [src] on \icon[icon] [T]"
|
||||
|
||||
var/pressure = T.parent.air.return_pressure()
|
||||
var/total_moles = T.parent.air.total_moles()
|
||||
|
||||
@@ -1424,4 +1424,4 @@ var/global/list/obj/item/device/pda/PDAs = list()
|
||||
|
||||
/obj/item/device/pda/proc/JFLOG(message as text)
|
||||
if (config)
|
||||
log_pda("[JFLOG_DescribeSelf()] >>> [message]")
|
||||
log_pda("[JFLOG_DescribeSelf()] >>> [message]")
|
||||
|
||||
@@ -96,10 +96,6 @@
|
||||
|
||||
if(iscarbon(M))
|
||||
flash_carbon(M, user, 5, 1)
|
||||
if(overcharged)
|
||||
M.adjust_fire_stacks(6)
|
||||
M.IgniteMob()
|
||||
burn_out()
|
||||
return 1
|
||||
|
||||
else if(issilicon(M))
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
icon_state = "sheet-glass"
|
||||
g_amt = 0
|
||||
created_window = /obj/structure/window/basic
|
||||
|
||||
|
||||
/obj/item/stack/sheet/glass/full/New()
|
||||
..()
|
||||
amount = 50
|
||||
@@ -106,6 +106,7 @@
|
||||
W.ini_dir = W.dir
|
||||
W.state = 0
|
||||
W.anchored = 0
|
||||
W.air_update_turf(1)
|
||||
src.use(1)
|
||||
if("Full Window")
|
||||
if(!src) return 1
|
||||
@@ -119,6 +120,7 @@
|
||||
var/obj/structure/window/W = new full_window( user.loc, 0 )
|
||||
W.state = 0
|
||||
W.anchored = 0
|
||||
W.air_update_turf(1)
|
||||
src.use(2)
|
||||
return 0
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
icon = 'icons/obj/trash.dmi'
|
||||
w_class = 1.0
|
||||
desc = "This is rubbish."
|
||||
autoignition_temperature = AUTOIGNITION_PAPER
|
||||
|
||||
raisins
|
||||
name = "4no raisins"
|
||||
icon_state= "4no_raisins"
|
||||
|
||||
@@ -163,9 +163,6 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
|
||||
/obj/item/clothing/mask/cigarette/process()
|
||||
var/turf/location = get_turf(src)
|
||||
var/mob/living/M = loc
|
||||
if(isliving(loc))
|
||||
M.IgniteMob()
|
||||
smoketime--
|
||||
if(smoketime < 1)
|
||||
die()
|
||||
@@ -452,7 +449,7 @@ CIGARETTE PACKETS ARE IN FANCY.DM
|
||||
/obj/item/weapon/lighter/attack(mob/living/carbon/M as mob, mob/living/carbon/user as mob)
|
||||
if(!isliving(M))
|
||||
return
|
||||
M.IgniteMob()
|
||||
// M.IgniteMob() //linda shit do later
|
||||
if(!istype(M, /mob))
|
||||
return
|
||||
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
m_amt = 0
|
||||
max_water = 30
|
||||
sprite_name = "miniFE"
|
||||
|
||||
|
||||
/obj/item/weapon/extinguisher/examine()
|
||||
set src in usr
|
||||
|
||||
@@ -157,9 +157,7 @@
|
||||
for(var/atom/atm in get_turf(W))
|
||||
if(!W) return
|
||||
W.reagents.reaction(atm)
|
||||
if(isliving(atm)) //For extinguishing mobs on fire
|
||||
var/mob/living/M = atm
|
||||
M.ExtinguishMob()
|
||||
|
||||
if(W.loc == my_target) break
|
||||
sleep(2)
|
||||
|
||||
@@ -168,4 +166,3 @@
|
||||
step(user, user.inertia_dir)
|
||||
else
|
||||
return ..()
|
||||
|
||||
@@ -189,8 +189,8 @@
|
||||
/obj/item/weapon/flamethrower/proc/flame_turf(turflist)
|
||||
if(!lit || operating) return
|
||||
operating = 1
|
||||
for(var/turf/T in turflist)
|
||||
if(T.density || istype(T, /turf/space))
|
||||
for(var/turf/simulated/T in turflist)
|
||||
if(!T.air)
|
||||
break
|
||||
if(!previousturf && length(turflist)>1)
|
||||
previousturf = get_turf(src)
|
||||
@@ -210,17 +210,16 @@
|
||||
/obj/item/weapon/flamethrower/proc/ignite_turf(turf/target)
|
||||
//TODO: DEFERRED Consider checking to make sure tank pressure is high enough before doing this...
|
||||
//Transfer 5% of current tank air contents to turf
|
||||
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.02*(throw_amount/100))
|
||||
//air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE
|
||||
new/obj/effect/decal/cleanable/liquid_fuel/flamethrower_fuel(target,air_transfer.toxins,get_dir(loc,target))
|
||||
air_transfer.toxins = 0
|
||||
var/datum/gas_mixture/air_transfer = ptank.air_contents.remove_ratio(0.05)
|
||||
air_transfer.toxins = air_transfer.toxins * 5 // This is me not comprehending the air system. I realize this is retarded and I could probably make it work without fucking it up like this, but there you have it. -- TLE
|
||||
target.assume_air(air_transfer)
|
||||
//Burn it based on transfered gas
|
||||
//target.hotspot_expose(part4.air_contents.temperature*2,300)
|
||||
target.hotspot_expose((ptank.air_contents.temperature*2) + 380,500) // -- More of my "how do I shot fire?" dickery. -- TLE
|
||||
//location.hotspot_expose(1000,500,1)
|
||||
air_master.add_to_active(target, 0)
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/flamethrower/full/New(var/loc)
|
||||
..()
|
||||
weldtool = new /obj/item/weapon/weldingtool(src)
|
||||
|
||||
@@ -8,8 +8,6 @@
|
||||
var/mob/affecting = null
|
||||
var/deity_name = "Christ"
|
||||
|
||||
autoignition_temperature = 522 // Kelvin
|
||||
|
||||
suicide_act(mob/user)
|
||||
viewers(user) << "<span class='warning'><b>[user] stares into [src.name] and attempts to trascend understanding of the universe!</b></span>"
|
||||
return (user.dust())
|
||||
@@ -20,8 +18,6 @@
|
||||
desc = "To be applied to the head repeatedly."
|
||||
icon_state ="bible"
|
||||
|
||||
autoignition_temperature = 0 // Not actually paper
|
||||
|
||||
/obj/item/weapon/storage/bible/booze/New()
|
||||
..()
|
||||
new /obj/item/weapon/reagent_containers/food/drinks/cans/beer(src)
|
||||
|
||||
@@ -26,9 +26,6 @@
|
||||
item_state = "syringe_kit"
|
||||
foldable = /obj/item/stack/sheet/cardboard //BubbleWrap
|
||||
|
||||
autoignition_temperature = 522 // Kelvin
|
||||
|
||||
|
||||
/obj/item/weapon/storage/box/large
|
||||
name = "large box"
|
||||
desc = "You could build a fort with this."
|
||||
@@ -39,8 +36,6 @@
|
||||
storage_slots = 21
|
||||
max_combined_w_class = 42 // 21*2
|
||||
|
||||
autoignition_temperature = 530 // Kelvin
|
||||
|
||||
/obj/item/weapon/storage/box/survival
|
||||
New()
|
||||
..()
|
||||
|
||||
@@ -80,9 +80,8 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
//src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
|
||||
/obj/item/weapon/tank/jetpack/oxygen
|
||||
name = "Jetpack (Oxygen)"
|
||||
@@ -92,9 +91,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
//src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
/obj/item/weapon/tank/jetpack/oxygen/harness
|
||||
name = "jet harness (oxygen)"
|
||||
@@ -113,9 +110,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
//src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
/obj/item/weapon/tank/jetpack/carbondioxide
|
||||
name = "Jetpack (Carbon Dioxide)"
|
||||
@@ -128,9 +123,7 @@
|
||||
..()
|
||||
src.ion_trail = new /datum/effect/effect/system/ion_trail_follow()
|
||||
src.ion_trail.set_up(src)
|
||||
//src.air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.adjust(0,(6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
return
|
||||
air_contents.carbon_dioxide = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
|
||||
examine()
|
||||
set src in usr
|
||||
|
||||
@@ -19,8 +19,7 @@
|
||||
|
||||
New()
|
||||
..()
|
||||
//src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
air_contents.adjust((6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C))
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
return
|
||||
|
||||
|
||||
@@ -59,9 +58,6 @@
|
||||
trace_gas.moles = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
|
||||
src.air_contents.trace_gases += trace_gas
|
||||
//
|
||||
air_contents.update_values()
|
||||
|
||||
return
|
||||
|
||||
/*
|
||||
@@ -85,12 +81,8 @@
|
||||
|
||||
src.air_contents.oxygen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD
|
||||
src.air_contents.nitrogen = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD
|
||||
//
|
||||
src.air_contents.update_values()
|
||||
|
||||
return
|
||||
|
||||
|
||||
/*
|
||||
* Plasma
|
||||
*/
|
||||
@@ -101,15 +93,13 @@
|
||||
flags = CONDUCT
|
||||
slot_flags = null //they have no straps!
|
||||
|
||||
|
||||
/obj/item/weapon/tank/plasma/New()
|
||||
..()
|
||||
|
||||
src.air_contents.toxins = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
//
|
||||
src.air_contents.update_values()
|
||||
return
|
||||
|
||||
|
||||
/obj/item/weapon/tank/plasma/attackby(obj/item/weapon/W as obj, mob/user as mob, params)
|
||||
..()
|
||||
|
||||
@@ -152,9 +142,6 @@
|
||||
New()
|
||||
..()
|
||||
src.air_contents.oxygen = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
//
|
||||
src.air_contents.update_values()
|
||||
|
||||
return
|
||||
|
||||
|
||||
@@ -182,7 +169,6 @@
|
||||
New()
|
||||
..()
|
||||
src.air_contents.oxygen = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
src.air_contents.update_values()
|
||||
return
|
||||
|
||||
/*
|
||||
@@ -199,8 +185,6 @@
|
||||
..()
|
||||
|
||||
src.air_contents.nitrogen = (3*ONE_ATMOSPHERE)*70/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
//
|
||||
src.air_contents.update_values()
|
||||
return
|
||||
|
||||
/obj/item/weapon/tank/nitrogen/examine()
|
||||
@@ -224,7 +208,4 @@
|
||||
..()
|
||||
src.air_contents.oxygen -= (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
src.air_contents.nitrogen = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C)
|
||||
//
|
||||
src.air_contents.update_values()
|
||||
|
||||
return
|
||||
@@ -357,8 +357,8 @@
|
||||
var/datum/gas_mixture/G = T.air
|
||||
if(get_dist(T, src) < 2) // Otherwise we'll get silliness like people using Nanofrost to kill people through walls with cold air
|
||||
G.temperature = 2
|
||||
update_nearby_tiles()
|
||||
var/hotspot = (locate(/obj/fire) in T)
|
||||
air_update_turf()
|
||||
var/hotspot = (locate(/obj/effect/hotspot) in T)
|
||||
if(hotspot && !istype(T, /turf/space))
|
||||
var/CT = 10
|
||||
var/datum/gas_mixture/lowertemp = T.remove_air( T:air:total_moles() )
|
||||
@@ -373,8 +373,6 @@
|
||||
V.welded = 1
|
||||
V.update_icon()
|
||||
V.visible_message("<span class='danger'>[V] was frozen shut!</span>")
|
||||
for(var/mob/living/L in T)
|
||||
L.ExtinguishMob()
|
||||
return
|
||||
|
||||
/datum/effect/effect/system/freezing_smoke_spread
|
||||
|
||||
@@ -268,9 +268,6 @@
|
||||
if (istype(location, /turf))
|
||||
location.hotspot_expose(700, 50, 1)
|
||||
|
||||
if(isliving(O))
|
||||
var/mob/living/L = O
|
||||
L.IgniteMob()
|
||||
return
|
||||
|
||||
|
||||
|
||||
@@ -178,14 +178,14 @@ obj/item/weapon/twohanded/
|
||||
if(A && wielded && (istype(A,/obj/structure/window) || istype(A,/obj/structure/grille))) //destroys windows and grilles in one hit
|
||||
|
||||
if(istype(A,/obj/structure/window))
|
||||
var/pdiff=performWallPressureCheck(A.loc)
|
||||
/* var/pdiff=performWallPressureCheck(A.loc)
|
||||
if(pdiff>0)
|
||||
message_admins("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([formatPlayerPanel(user,user.ckey)]) at [formatJumpTo(A.loc)]!")
|
||||
log_admin("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([user.ckey]) at [A.loc]!")
|
||||
log_admin("[A] with pdiff [pdiff] fire-axed by [user.real_name] ([user.ckey]) at [A.loc]!")*///TODO: Figure out how the hell to remake this proc
|
||||
var/obj/structure/window/W = A
|
||||
W.destroy()
|
||||
else
|
||||
del(A)
|
||||
qdel(A)
|
||||
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user