From ab28e2facbcf0cc8b4fb1dea7f9162cf969c71ef Mon Sep 17 00:00:00 2001 From: RandomMarine Date: Mon, 25 Sep 2017 19:25:06 -0700 Subject: [PATCH] Air tanks get their own sprite, plus reset fix. --- code/game/objects/items/tanks/tank_types.dm | 186 ++++++++++++++++++++ code/game/objects/items/tanks/tanks.dm | 2 +- icons/obj/tank.dmi | Bin 9167 -> 9054 bytes 3 files changed, 187 insertions(+), 1 deletion(-) diff --git a/code/game/objects/items/tanks/tank_types.dm b/code/game/objects/items/tanks/tank_types.dm index 71a2c51dca..58133568ba 100644 --- a/code/game/objects/items/tanks/tank_types.dm +++ b/code/game/objects/items/tanks/tank_types.dm @@ -1,3 +1,4 @@ +<<<<<<< HEAD /* Types of tanks! * Contains: * Oxygen @@ -181,3 +182,188 @@ name = "double emergency oxygen tank" icon_state = "emergency_engi" volume = 10 +======= +/* Types of tanks! + * Contains: + * Oxygen + * Anesthetic + * Air + * Plasma + * Emergency Oxygen + */ + +/* + * Oxygen + */ +/obj/item/tank/internals/oxygen + name = "oxygen tank" + desc = "A tank of oxygen." + icon_state = "oxygen" + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + force = 10 + dog_fashion = /datum/dog_fashion/back + + +/obj/item/tank/internals/oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/tank/internals/oxygen/yellow + desc = "A tank of oxygen, this one is yellow." + icon_state = "oxygen_f" + dog_fashion = null + +/obj/item/tank/internals/oxygen/red + desc = "A tank of oxygen, this one is red." + icon_state = "oxygen_fr" + dog_fashion = null + + +/* + * Anesthetic + */ +/obj/item/tank/internals/anesthetic + name = "anesthetic tank" + desc = "A tank with an N2O/O2 gas mix." + icon_state = "anesthetic" + item_state = "an_tank" + force = 10 + +/obj/item/tank/internals/anesthetic/New() + ..() + air_contents.assert_gases("o2", "n2o") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2o"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + +/* + * Air + */ +/obj/item/tank/internals/air + name = "air tank" + desc = "Mixed anyone?" + icon_state = "air" + force = 10 + dog_fashion = /datum/dog_fashion/back + +/obj/item/tank/internals/air/New() + ..() + air_contents.assert_gases("o2","n2") + air_contents.gases["o2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * O2STANDARD + air_contents.gases["n2"][MOLES] = (6*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) * N2STANDARD + return + + +/* + * Plasma + */ +/obj/item/tank/internals/plasma + name = "plasma tank" + desc = "Contains dangerous plasma. Do not inhale. Warning: extremely flammable." + icon_state = "plasma" + flags_1 = CONDUCT_1 + slot_flags = null //they have no straps! + force = 8 + + +/obj/item/tank/internals/plasma/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasma/attackby(obj/item/W, mob/user, params) + if(istype(W, /obj/item/flamethrower)) + var/obj/item/flamethrower/F = W + if ((!F.status)||(F.ptank)) + return + if(!user.transferItemToLoc(src, F)) + return + src.master = F + F.ptank = src + F.update_icon() + else + return ..() + +/obj/item/tank/internals/plasma/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/* + * Plasmaman Plasma Tank + */ + +/obj/item/tank/internals/plasmaman + name = "plasma internals tank" + desc = "A tank of plasma gas designed specifically for use as internals, particularly for plasma-based lifeforms. If you're not a Plasmaman, you probably shouldn't use this." + icon_state = "plasmaman_tank" + item_state = "plasmaman_tank" + force = 10 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + +/obj/item/tank/internals/plasmaman/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/plasmaman/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + +/obj/item/tank/internals/plasmaman/belt + icon_state = "plasmaman_tank_belt" + item_state = "plasmaman_tank_belt" + slot_flags = SLOT_BELT + force = 5 + volume = 6 + w_class = WEIGHT_CLASS_SMALL //thanks i forgot this + +/obj/item/tank/internals/plasmaman/belt/full/New() + ..() + air_contents.assert_gas("plasma") + air_contents.gases["plasma"][MOLES] = (10*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + + + +/* + * Emergency Oxygen + */ +/obj/item/tank/internals/emergency_oxygen + name = "emergency oxygen tank" + desc = "Used for emergencies. Contains very little oxygen, so try to conserve it until you actually need it." + icon_state = "emergency" + flags_1 = CONDUCT_1 + slot_flags = SLOT_BELT + w_class = WEIGHT_CLASS_SMALL + force = 4 + distribute_pressure = TANK_DEFAULT_RELEASE_PRESSURE + volume = 3 //Tiny. Real life equivalents only have 21 breaths of oxygen in them. They're EMERGENCY tanks anyway -errorage (dangercon 2011) + + +/obj/item/tank/internals/emergency_oxygen/New() + ..() + air_contents.assert_gas("o2") + air_contents.gases["o2"][MOLES] = (3*ONE_ATMOSPHERE)*volume/(R_IDEAL_GAS_EQUATION*T20C) + return + +/obj/item/tank/internals/emergency_oxygen/engi + name = "extended-capacity emergency oxygen tank" + icon_state = "emergency_engi" + volume = 6 + +/obj/item/tank/internals/emergency_oxygen/double + name = "double emergency oxygen tank" + icon_state = "emergency_engi" + volume = 10 +>>>>>>> 98ed3d0... Air tanks get their own sprite + reset fix diff --git a/code/game/objects/items/tanks/tanks.dm b/code/game/objects/items/tanks/tanks.dm index dd2ea47dc4..7628617923 100644 --- a/code/game/objects/items/tanks/tanks.dm +++ b/code/game/objects/items/tanks/tanks.dm @@ -177,7 +177,7 @@ if("pressure") var/pressure = params["pressure"] if(pressure == "reset") - pressure = TANK_DEFAULT_RELEASE_PRESSURE + pressure = initial(distribute_pressure) . = TRUE else if(pressure == "min") pressure = TANK_MIN_RELEASE_PRESSURE diff --git a/icons/obj/tank.dmi b/icons/obj/tank.dmi index 8e41c003a4376de09ff19f8fcd9f6010ddd59e51..f5ce551e7f39dbf37acfe4af0ab1c1bfaf1df6d7 100644 GIT binary patch literal 9054 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

EyBQA>0q4EqKg<0Pjw!*v(CP zO4NCvyHUn>X)Q;~DUQua7Rlh)09lN)JNB|V0W}>fD&y>h^?mciikh)dSzS#{C$FI3 z3zU96g0A$WYjao2G1PF}4t)y5bO!%z2;r+)A5sG4N3IM6SqI}Vc-Yf?B4?7kF1-coqXsK@px#Q?KS*DKP)!TrCi{rCERLJZ za8q0Sf}e{5u)Tnd&cv4m@luel_pzWptO^xtwi-L(|wc47zxXQMUNGe`T zo0&6XSHOUX<7?rZ^ux~d2ltXL`iw;vI9DX`p~Pgj9}7}8&}kupKRv*kpq*#|f-4lC z3PMQhz1A2HNBn#bJFiC?{g5qSM&TWgPOz+sKO0&u`CLuT%WF4f3{Vso>kgS^w{*Vc zO*0PZ_typ>UwoDIDI0zBa>Lfv)_QHgoMssHBOoCQftuj3cna2bDR!^c{y2auftu|k zvR)FLyiorb)N|iw@yB9DV;OC;swKYx3BYkiG-G7BJyAK2VyCCq3o`A*o#~#mhbCbT z^2e?m6Co#l8S2=t_Z9FYo;z}ME5c}sRHv&!I{2=3=cgeM1?%sG0sFQQz;1Vn*I{X{ z{{6SL5>$lnUzqg_FI-xAx=Whim^gQY`ZndI^7qyK&bOt%)0Xp)t)0@cG3gdFX}?n6 z%`Iebc2WC=mRmXdC^~U&bT`A=T_c{aTc)5WBO)T^h1#jyuvo zY*3ZD9=xotgMn3v@D0jQk-XO)jN@!Pe`V*dd{^GZf`x+Ke>OBA0vi1SmXMcNSnk>t z+OAa;kz~OfX6jYC;vJQ;T8Ug+<;s-d{w9K}A4t1o{$&{sa4wf=w~ln}&L&PYv;BGS z;Naljn#uYVqQ+ahGx4o{h+;&>uM{Tu<$*w%g5>+2L+5M(ADUarU1Qf&j^jUDV+$%B z>1G%Y(RCzvMV8U33*7s$x;5AMK3NCK=4}9|=%~z($sI_C109-b0)2+O}2k;oifJFKi-HUT3AP5Bxq^3pl-PuB3j0wFM-FhdJ-klKPf+G)J;It5|j zkkS$gf59AH&%ni{X?qlbt3A_ItmifpNGQy{!q+4PCb)e!upM@~Nx1L>pt3aov RMmRSEs4HtJl_^+;{Vzv9zmNa` literal 9167 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