mirror of
https://github.com/fulpstation/fulpstation.git
synced 2025-12-10 18:11:47 +00:00
Cryokinesis and Geladikinesis mutations (#42453)
* Adds cryokinesis and renames the cold resistence file to space adaptation * adds cryokinesis * fixes icon conflict is there actually a proper way to fix them thats not copying master and reimplimenting your own sprites? * fixes a typo and lowers instability of cryokines by 5 * Apply suggestions from code review Co-Authored-By: Time-Green <timkoster1@hotmail.com> * maybe reverts line ending? * unfucks flags? * probably unfucks line endings i swear to fucking god why does it even do this. i never even touched the file and reverting it to master doesnt do anything. fuck you git
This commit is contained in:
41
code/datums/mutations/cold.dm
Normal file
41
code/datums/mutations/cold.dm
Normal file
@@ -0,0 +1,41 @@
|
||||
/datum/mutation/human/geladikinesis
|
||||
name = "Geladikinetic Creation"
|
||||
desc = "Allows the user to concentrate moisture and sub-zero forces into snow."
|
||||
quality = POSITIVE
|
||||
text_gain_indication = "<span class='notice'>Your hand feels cold.</span>"
|
||||
instability = 10
|
||||
difficulty = 10
|
||||
power = /obj/effect/proc_holder/spell/targeted/conjure_item/snow
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/snow
|
||||
name = "Create Snow"
|
||||
desc = "Concentrates cryokinetic forces to create snow, useful for snow-like construction."
|
||||
item_type = /obj/item/stack/sheet/mineral/snow
|
||||
charge_max = 50
|
||||
delete_old = FALSE
|
||||
action_icon_state = "snow"
|
||||
|
||||
|
||||
/datum/mutation/human/cryokinesis
|
||||
name = "Cryokinesis"
|
||||
desc = "Draws negative energy from the sub-zero void to freeze surrounding temperatures at subject's will."
|
||||
quality = POSITIVE //upsides and downsides
|
||||
text_gain_indication = "<span class='notice'>Your hand feels cold.</span>"
|
||||
instability = 20
|
||||
difficulty = 12
|
||||
power = /obj/effect/proc_holder/spell/aimed/cryo
|
||||
|
||||
/obj/effect/proc_holder/spell/aimed/cryo
|
||||
name = "Cryobeam"
|
||||
desc = "This power fires a frozen bolt at a target."
|
||||
charge_max = 150
|
||||
cooldown_min = 150
|
||||
clothes_req = FALSE
|
||||
range = 3
|
||||
projectile_type = /obj/item/projectile/temp/cryo
|
||||
base_icon_state = "icebeam"
|
||||
action_icon_state = "icebeam"
|
||||
active_msg = "You focus your cryokinesis!"
|
||||
deactive_msg = "You relax."
|
||||
active = FALSE
|
||||
|
||||
@@ -342,9 +342,10 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \
|
||||
merge_type = /obj/item/stack/sheet/mineral/snow
|
||||
|
||||
GLOBAL_LIST_INIT(snow_recipes, list ( \
|
||||
new/datum/stack_recipe("Snow Wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("Snow wall", /turf/closed/wall/mineral/snow, 5, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("Snowman", /obj/structure/statue/snow/snowman, 5, one_per_turf = 1, on_floor = 1), \
|
||||
new/datum/stack_recipe("Snowball", /obj/item/toy/snowball, 1), \
|
||||
new/datum/stack_recipe("Snow tile", /obj/item/stack/tile/mineral/snow, 1, 4, 20), \
|
||||
))
|
||||
|
||||
/obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge = TRUE)
|
||||
|
||||
@@ -191,9 +191,15 @@
|
||||
var/obj/O
|
||||
if(R.max_res_amount > 1) //Is it a stack?
|
||||
O = new R.result_type(usr.drop_location(), R.res_amount * multiplier)
|
||||
else if(ispath(R.result_type, /turf))
|
||||
var/turf/T = usr.drop_location()
|
||||
if(!isturf(T))
|
||||
return
|
||||
T.PlaceOnTop(R.result_type)
|
||||
else
|
||||
O = new R.result_type(usr.drop_location())
|
||||
O.setDir(usr.dir)
|
||||
if(O)
|
||||
O.setDir(usr.dir)
|
||||
use(R.req_amount * multiplier)
|
||||
|
||||
//START: oh fuck i'm so sorry
|
||||
|
||||
@@ -77,4 +77,12 @@
|
||||
icon_state = "tile_darkshuttle"
|
||||
turf_type = /turf/open/floor/mineral/plastitanium
|
||||
mineralType = "plastitanium"
|
||||
materials = list(MAT_TITANIUM=250, MAT_PLASMA=250)
|
||||
materials = list(MAT_TITANIUM=250, MAT_PLASMA=250)
|
||||
|
||||
/obj/item/stack/tile/mineral/snow
|
||||
name = "snow tile"
|
||||
singular_name = "snow tile"
|
||||
desc = "A layer of snow."
|
||||
icon_state = "tile_snow"
|
||||
turf_type = /turf/open/floor/grass/snow
|
||||
mineralType = "snow"
|
||||
@@ -16,3 +16,14 @@
|
||||
/obj/item/projectile/temp/hot
|
||||
name = "heat beam"
|
||||
temperature = 400
|
||||
|
||||
/obj/item/projectile/temp/cryo
|
||||
name = "cryo beam"
|
||||
range = 3
|
||||
|
||||
/obj/item/projectile/temp/cryo/on_range()
|
||||
var/turf/T = get_turf(src)
|
||||
if(isopenturf(T))
|
||||
var/turf/open/O = T
|
||||
O.freon_gas_act()
|
||||
return ..()
|
||||
|
||||
@@ -80,11 +80,11 @@
|
||||
school = "conjuration"
|
||||
charge_max = 150
|
||||
cooldown_min = 10
|
||||
var/delete_old = TRUE //TRUE to delete the last summoned object if it's still there, FALSE for infinite item stream weeeee
|
||||
|
||||
/obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr)
|
||||
if (item && !QDELETED(item))
|
||||
qdel(item)
|
||||
item = null
|
||||
if (delete_old && item && !QDELETED(item))
|
||||
QDEL_NULL(item)
|
||||
else
|
||||
for(var/mob/living/carbon/C in targets)
|
||||
if(C.dropItemToGround(C.get_active_held_item()))
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 25 KiB |
Binary file not shown.
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
@@ -465,11 +465,12 @@
|
||||
#include "code\datums\mutations\actions.dm"
|
||||
#include "code\datums\mutations\body.dm"
|
||||
#include "code\datums\mutations\chameleon.dm"
|
||||
#include "code\datums\mutations\cold_resistance.dm"
|
||||
#include "code\datums\mutations\cold.dm"
|
||||
#include "code\datums\mutations\combined.dm"
|
||||
#include "code\datums\mutations\hulk.dm"
|
||||
#include "code\datums\mutations\radioactive.dm"
|
||||
#include "code\datums\mutations\sight.dm"
|
||||
#include "code\datums\mutations\space_adaptation.dm"
|
||||
#include "code\datums\mutations\speech.dm"
|
||||
#include "code\datums\mutations\telekinesis.dm"
|
||||
#include "code\datums\mutations\touch.dm"
|
||||
|
||||
Reference in New Issue
Block a user