Files
kiwistation/code/modules/awaymissions/mission_code/Cabin.dm
T
coiax 6449b65d30 Adds fireplaces, eswords are hot, cardboard is flammable (#19118)
Makes needed improvements to proposed fireplaces

- Fireplaces now use world.timer
- Fireplaces no longer prompt input() for inserting logs, it just
takes as many logs as possible
- Paper and paper bins can be thrown on the fire, thirty paper is worth
one log of burn time.
- One log gives 15 seconds of burn time, the fireplace can hold up to 5
minutes of fuel.
- Ignitable items now use a /obj level proc to generate their messages,
currently using this are cigarettes, candles, fireplaces
- The fireplace can be put out with an extinguisher
- Cardboard cutouts are now flammable
- The fireplace is only "warm and cozy" when lit
- Paperbins qdel their stored papers when destroyed (probably did that
already, but no harm in making sure)
- Also removed some returns hanging around

* Added new proc for lighting stuff

- Adds ignition_effect(atom/A, mob/user) to obj/item, which is called
when you're attempting to light things with that object. By default it
does nothing and prevents ignition, but if the object is hot, it returns
a message. May do other things for different stuff.

- Eswords now ignite flammable gasses in their area.

* Fireplace is no longer on fire when not on fire
2016-07-06 10:16:47 +12:00

135 lines
3.1 KiB
Plaintext

/*Cabin areas*/
/area/awaymission/snowforest
name = "Snow Forest"
icon_state = "away"
requires_power = 0
luminosity = 1
lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED
/area/awaymission/cabin
name = "Cabin"
icon_state = "away2"
requires_power = 1
luminosity = 0
lighting_use_dynamic = DYNAMIC_LIGHTING_ENABLED
/area/awaymission/snowforest/lumbermill
name = "Lumbermill"
icon_state = "away3"
/obj/structure/firepit
name = "firepit"
desc = "warm and toasty"
icon = 'icons/obj/fireplace.dmi'
icon_state = "firepit-active"
density = 0
var/active = 1
/obj/structure/firepit/initialize()
..()
toggleFirepit()
/obj/structure/firepit/attack_hand(mob/living/user)
if(active)
active = 0
toggleFirepit()
else
..()
/obj/structure/firepit/attackby(obj/item/W,mob/living/user,params)
if(!active)
var/msg = W.ignition_effect(src, user)
if(msg)
active = TRUE
visible_message(msg)
toggleFirepit()
else
return ..()
else
W.fire_act()
/obj/structure/firepit/proc/toggleFirepit()
if(active)
SetLuminosity(8)
icon_state = "firepit-active"
else
SetLuminosity(0)
icon_state = "firepit"
/obj/structure/firepit/extinguish()
if(active)
active = FALSE
toggleFirepit()
/obj/structure/firepit/fire_act()
if(!active)
active = TRUE
toggleFirepit()
//other Cabin Stuff//
/obj/machinery/recycler/lumbermill
name = "lumbermill saw"
desc = "Faster then the cartoons!"
emagged = 2 //Always gibs people
item_recycle_sound = 'sound/weapons/chainsawhit.ogg'
/obj/machinery/recycler/lumbermill/recycle_item(obj/item/weapon/grown/log/L)
if(!istype(L))
return
else
var/potency = L.seed.potency
..()
new L.plank_type(src.loc, 1 + round(potency / 25))
/mob/living/simple_animal/chicken/rabbit/normal
icon_state = "b_rabbit"
icon_living = "b_rabbit"
icon_dead = "b_rabbit_dead"
icon_prefix = "b_rabbit"
minbodytemp = 0
eggsleft = 0
egg_type = null
speak = list()
/*Cabin's forest*/
/datum/mapGenerator/snowy
modules = list(/datum/mapGeneratorModule/snow/pineTrees, \
/datum/mapGeneratorModule/snow/deadTrees, \
/datum/mapGeneratorModule/snow/randBushes, \
/datum/mapGeneratorModule/snow/randIceRocks, \
/datum/mapGeneratorModule/snow/bunnies)
/datum/mapGeneratorModule/snow/checkPlaceAtom(turf/T)
if(istype(T,/turf/open/floor/plating/asteroid/snow))
return ..(T)
return 0
/datum/mapGeneratorModule/snow/pineTrees
spawnableAtoms = list(/obj/structure/flora/tree/pine = 30)
/datum/mapGeneratorModule/snow/deadTrees
spawnableAtoms = list(/obj/structure/flora/tree/dead = 10)
/datum/mapGeneratorModule/snow/randBushes
spawnableAtoms = list()
/datum/mapGeneratorModule/snow/randBushes/New()
..()
spawnableAtoms = typesof(/obj/structure/flora/ausbushes)
for(var/i in spawnableAtoms)
spawnableAtoms[i] = 1
/datum/mapGeneratorModule/snow/bunnies
//spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit/normal = 0.1)
spawnableAtoms = list(/mob/living/simple_animal/chicken/rabbit = 0.5)
/datum/mapGeneratorModule/snow/randIceRocks
spawnableAtoms = list(/obj/structure/flora/rock/icy = 5, /obj/structure/flora/rock/pile/icy = 5)
/obj/effect/landmark/mapGenerator/snowy
mapGeneratorType = /datum/mapGenerator/snowy