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:
Time-Green
2019-01-23 21:20:56 +01:00
committed by Jordan Brown
parent 12d0613e47
commit 9861efde71
10 changed files with 75 additions and 7 deletions

View 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

View File

@@ -342,9 +342,10 @@ GLOBAL_LIST_INIT(plastitanium_recipes, list ( \
merge_type = /obj/item/stack/sheet/mineral/snow merge_type = /obj/item/stack/sheet/mineral/snow
GLOBAL_LIST_INIT(snow_recipes, list ( \ 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("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("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) /obj/item/stack/sheet/mineral/snow/Initialize(mapload, new_amount, merge = TRUE)

View File

@@ -191,9 +191,15 @@
var/obj/O var/obj/O
if(R.max_res_amount > 1) //Is it a stack? if(R.max_res_amount > 1) //Is it a stack?
O = new R.result_type(usr.drop_location(), R.res_amount * multiplier) 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 else
O = new R.result_type(usr.drop_location()) O = new R.result_type(usr.drop_location())
O.setDir(usr.dir) if(O)
O.setDir(usr.dir)
use(R.req_amount * multiplier) use(R.req_amount * multiplier)
//START: oh fuck i'm so sorry //START: oh fuck i'm so sorry

View File

@@ -78,3 +78,11 @@
turf_type = /turf/open/floor/mineral/plastitanium turf_type = /turf/open/floor/mineral/plastitanium
mineralType = "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"

View File

@@ -16,3 +16,14 @@
/obj/item/projectile/temp/hot /obj/item/projectile/temp/hot
name = "heat beam" name = "heat beam"
temperature = 400 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 ..()

View File

@@ -80,11 +80,11 @@
school = "conjuration" school = "conjuration"
charge_max = 150 charge_max = 150
cooldown_min = 10 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) /obj/effect/proc_holder/spell/targeted/conjure_item/cast(list/targets, mob/user = usr)
if (item && !QDELETED(item)) if (delete_old && item && !QDELETED(item))
qdel(item) QDEL_NULL(item)
item = null
else else
for(var/mob/living/carbon/C in targets) for(var/mob/living/carbon/C in targets)
if(C.dropItemToGround(C.get_active_held_item())) 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

View File

@@ -465,11 +465,12 @@
#include "code\datums\mutations\actions.dm" #include "code\datums\mutations\actions.dm"
#include "code\datums\mutations\body.dm" #include "code\datums\mutations\body.dm"
#include "code\datums\mutations\chameleon.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\combined.dm"
#include "code\datums\mutations\hulk.dm" #include "code\datums\mutations\hulk.dm"
#include "code\datums\mutations\radioactive.dm" #include "code\datums\mutations\radioactive.dm"
#include "code\datums\mutations\sight.dm" #include "code\datums\mutations\sight.dm"
#include "code\datums\mutations\space_adaptation.dm"
#include "code\datums\mutations\speech.dm" #include "code\datums\mutations\speech.dm"
#include "code\datums\mutations\telekinesis.dm" #include "code\datums\mutations\telekinesis.dm"
#include "code\datums\mutations\touch.dm" #include "code\datums\mutations\touch.dm"