forked from NebulaSS13/Nebula
-
Notifications
You must be signed in to change notification settings - Fork 9
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Adding wyrdling tails, ears, traits, masks.
- Loading branch information
1 parent
3a86988
commit 627bab1
Showing
11 changed files
with
349 additions
and
35 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,35 +1,41 @@ | ||
#ifndef MODPACK_FANTASY_SPECIES | ||
#define MODPACK_FANTASY_SPECIES | ||
// BEGIN_INCLUDE | ||
#include "_fantasy.dm" | ||
#include "datum\cultures.dm" | ||
#include "datum\currencies.dm" | ||
#include "datum\factions.dm" | ||
#include "datum\locations.dm" | ||
#include "datum\outfits.dm" | ||
#include "datum\overrides.dm" | ||
#include "datum\species.dm" | ||
#include "datum\hnoll\bodytypes.dm" | ||
#include "datum\hnoll\culture.dm" | ||
#include "datum\hnoll\language.dm" | ||
#include "datum\hnoll\markings.dm" | ||
#include "datum\hnoll\organs.dm" | ||
#include "datum\hnoll\species.dm" | ||
#include "datum\kobaloi\bodytypes.dm" | ||
#include "datum\kobaloi\clothing.dm" | ||
#include "datum\kobaloi\culture.dm" | ||
#include "datum\kobaloi\language.dm" | ||
#include "datum\kobaloi\markings.dm" | ||
#include "datum\kobaloi\organs.dm" | ||
#include "datum\kobaloi\species.dm" | ||
#include "items\clothing\_loadout.dm" | ||
#include "items\clothing\_recipes.dm" | ||
#include "items\clothing\armor.dm" | ||
#include "items\clothing\glasses.dm" | ||
#include "items\clothing\jerkin.dm" | ||
#include "items\clothing\loincloth.dm" | ||
#include "items\clothing\overrides.dm" | ||
#include "items\clothing\trousers.dm" | ||
#include "props\signpost.dm" | ||
// END_INCLUDE | ||
#endif | ||
#ifndef MODPACK_FANTASY_SPECIES | ||
#define MODPACK_FANTASY_SPECIES | ||
// BEGIN_INCLUDE | ||
#include "_fantasy.dm" | ||
#include "datum\cultures.dm" | ||
#include "datum\currencies.dm" | ||
#include "datum\factions.dm" | ||
#include "datum\locations.dm" | ||
#include "datum\outfits.dm" | ||
#include "datum\overrides.dm" | ||
#include "datum\species.dm" | ||
#include "datum\hnoll\bodytypes.dm" | ||
#include "datum\hnoll\culture.dm" | ||
#include "datum\hnoll\language.dm" | ||
#include "datum\hnoll\markings.dm" | ||
#include "datum\hnoll\organs.dm" | ||
#include "datum\hnoll\species.dm" | ||
#include "datum\kobaloi\bodytypes.dm" | ||
#include "datum\kobaloi\clothing.dm" | ||
#include "datum\kobaloi\culture.dm" | ||
#include "datum\kobaloi\language.dm" | ||
#include "datum\kobaloi\markings.dm" | ||
#include "datum\kobaloi\organs.dm" | ||
#include "datum\kobaloi\species.dm" | ||
#include "datum\traits\_wyrd.dm" | ||
#include "datum\traits\_wyrd_categories.dm" | ||
#include "datum\traits\wyrd_wild.dm" | ||
#include "datum\wyrdling\ears.dm" | ||
#include "datum\wyrdling\tails.dm" | ||
#include "items\clothing\_loadout.dm" | ||
#include "items\clothing\_recipes.dm" | ||
#include "items\clothing\armor.dm" | ||
#include "items\clothing\glasses.dm" | ||
#include "items\clothing\jerkin.dm" | ||
#include "items\clothing\loincloth.dm" | ||
#include "items\clothing\mask.dm" | ||
#include "items\clothing\overrides.dm" | ||
#include "items\clothing\trousers.dm" | ||
#include "props\signpost.dm" | ||
// END_INCLUDE | ||
#endif |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
/decl/trait/wyrd | ||
abstract_type = /decl/trait/wyrd | ||
category = "Wyrd" | ||
trait_cost = -1 | ||
available_at_chargen = TRUE |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
// TODO: actual effects | ||
/decl/trait/wyrd/fire | ||
name = "Burning Sign" | ||
description = "Affinity for the New School of alchemical working (energy, force, fire, lightning). TODO." | ||
incompatible_with = list( | ||
/decl/trait/wyrd/deep, | ||
/decl/trait/wyrd/sky, | ||
/decl/trait/wyrd/wild, | ||
/decl/trait/wyrd/flesh | ||
) | ||
uid = "trait_wyrd_flame" | ||
|
||
/decl/trait/wyrd/sky | ||
name = "Sky Sign" | ||
description = "Affinity for the sun, moon and stars, cold, air, wind, light, sky. Associated with the magical traditions of the Steppe and Nine Mothers. TODO." | ||
incompatible_with = list( | ||
/decl/trait/wyrd/deep, | ||
/decl/trait/wyrd/fire, | ||
/decl/trait/wyrd/wild, | ||
/decl/trait/wyrd/flesh | ||
) | ||
uid = "trait_wyrd_sky" | ||
|
||
/decl/trait/wyrd/deep | ||
name = "Hollow Sign" | ||
description = "Affinity for stone, darkness, the depths, the earth. Associated with the magical traditions of kobaloi and dvergr. TODO." | ||
incompatible_with = list( | ||
/decl/trait/wyrd/sky, | ||
/decl/trait/wyrd/fire, | ||
/decl/trait/wyrd/wild, | ||
/decl/trait/wyrd/flesh | ||
) | ||
uid = "trait_wyrd_hollow" | ||
|
||
/decl/trait/wyrd/flesh | ||
name = "Rose Sign" | ||
description = "Affinity for blood, flesh, bone - healing, necromancy, blood alchemy, manipulation of living material. TODO." | ||
incompatible_with = list( | ||
/decl/trait/wyrd/sky, | ||
/decl/trait/wyrd/fire, | ||
/decl/trait/wyrd/wild, | ||
/decl/trait/wyrd/deep | ||
) | ||
uid = "trait_wyrd_flesh" | ||
|
||
/decl/trait/wyrd/wild | ||
name = "Wild Sign" | ||
description = "A wyrdling is a human whose soul has been touched by the primeveal \ | ||
anima of the wilds, carried down through blood and manifesting in strange ways. The \ | ||
wyrdmarked are often treated with mistrust or fear by the general populace, leading \ | ||
many to cover their wyrdmarks and hide their nature." | ||
permitted_species = list(SPECIES_HUMAN) | ||
uid = "trait_wyrd_wild" | ||
incompatible_with = list( | ||
/decl/trait/wyrd/fire, | ||
/decl/trait/wyrd/sky, | ||
/decl/trait/wyrd/deep, | ||
/decl/trait/wyrd/flesh | ||
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,40 @@ | ||
/decl/trait/wyrd/wild/animal_form | ||
abstract_type = /decl/trait/wyrd/wild/animal_form | ||
name = "Animal Semblance" | ||
description = "Some wyrdlings possess the ability to 'veer' into the form of an \ | ||
animal, known as the 'semblance'. Such wyrdlings use masks of bone or wood to focus \ | ||
and control the veering, making it difficult for them to conceal their abilities." | ||
parent = /decl/trait/wyrd/wild | ||
incompatible_with = null | ||
var/mask_type | ||
|
||
/decl/trait/wyrd/wild/animal_form/Initialize() | ||
incompatible_with = subtypesof(/decl/trait/wyrd/wild/animal_form) - type | ||
. = ..() | ||
|
||
/decl/trait/wyrd/wild/animal_form/apply_trait(mob/living/holder) | ||
. = ..() | ||
if(mask_type) | ||
var/obj/item/clothing/mask/ghost_caul/mask = new mask_type | ||
if(!holder.equip_to_slot_if_possible(mask, slot_wear_mask_str)) | ||
holder.put_in_hands_or_store_or_drop(mask) | ||
|
||
/decl/trait/wyrd/wild/animal_form/fox | ||
name = "Fox Semblance" | ||
mask_type = /obj/item/clothing/mask/ghost_caul/fox | ||
uid = "trait_wyrd_wild_fox" | ||
|
||
/decl/trait/wyrd/wild/animal_form/deer | ||
name = "Deer Semblance" | ||
mask_type = /obj/item/clothing/mask/ghost_caul/deer | ||
uid = "trait_wyrd_wild_deer" | ||
|
||
/decl/trait/wyrd/wild/animal_form/rabbit | ||
name = "Rabbit Semblance" | ||
mask_type = /obj/item/clothing/mask/ghost_caul/rabbit | ||
uid = "trait_wyrd_wild_rabbit" | ||
|
||
/decl/trait/wyrd/wild/animal_form/bear | ||
name = "Bear Semblance" | ||
mask_type = /obj/item/clothing/mask/ghost_caul/bear | ||
uid = "trait_wyrd_wild_bear" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
/decl/sprite_accessory/ears/wyrdling | ||
abstract_type = /decl/sprite_accessory/ears/wyrdling | ||
icon = 'mods/content/fantasy/icons/wyrdling/ears.dmi' | ||
required_traits = list(/decl/trait/wyrd/wild) | ||
accessory_metadata_types = list(SAM_COLOR, SAM_COLOR_INNER) | ||
|
||
/decl/sprite_accessory/ears/wyrdling/animal | ||
name = "Animal Ears" | ||
icon_state = "ears_plain" | ||
uid = "accessory_ears_animal" | ||
|
||
/decl/sprite_accessory/ears/wyrdling/lupine | ||
name = "Lupine Ears" | ||
icon_state = "wolf" | ||
uid = "accessory_ears_wolf" | ||
|
||
/decl/sprite_accessory/ears/wyrdling/fennec | ||
name = "Fennec Ears" | ||
icon_state = "fennec" | ||
uid = "accessory_ears_fennec" | ||
|
||
/decl/sprite_accessory/ears/wyrdling/vulpine | ||
name = "Vulpine Ears" | ||
icon_state = "fox" | ||
uid = "accessory_ears_fox" | ||
|
||
/decl/sprite_accessory/ears/wyrdling/antlers | ||
name = "Antlers" | ||
icon_state = "antlers" | ||
uid = "accessory_ears_antlers" | ||
accessory_metadata_types = list(SAM_COLOR) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
/decl/sprite_accessory/tail/wyrdling | ||
abstract_type = /decl/sprite_accessory/tail/wyrdling | ||
icon = 'mods/content/fantasy/icons/wyrdling/tails.dmi' | ||
required_traits = list(/decl/trait/wyrd/wild) | ||
accessory_metadata_types = list(SAM_COLOR) | ||
|
||
/decl/sprite_accessory/tail/wyrdling/twotone | ||
abstract_type = /decl/sprite_accessory/tail/wyrdling/twotone | ||
accessory_metadata_types = list(SAM_COLOR, SAM_COLOR_INNER) | ||
|
||
/decl/sprite_accessory/tail/wyrdling/twotone/skunk | ||
name = "Skunk Tail" | ||
icon_state = "skunktail" | ||
uid = "acc_tail_skunk" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/twotone/vulpine | ||
name = "Vulpine Tail" | ||
icon_state = "vulptail" | ||
uid = "acc_tail_vulpine" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/twotone/tuft | ||
name = "Tuft Tail" | ||
icon_state = "deertail" | ||
uid = "acc_tail_deer" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/twotone/long_tuft | ||
name = "Long Tufted Tail" | ||
icon_state = "easterntail" | ||
uid = "acc_tail_eastern" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/horse | ||
name = "Horse Tail" | ||
icon_state = "horse" | ||
uid = "acc_tail_horse" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/fantail | ||
name = "Fantail" | ||
icon_state = "fantail" | ||
uid = "acc_tail_fan" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/wagtail | ||
name = "Wagtail" | ||
icon_state = "wagtail" | ||
uid = "acc_tail_wag" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/mouse | ||
name = "Mouse Tail" | ||
icon_state = "mouse" | ||
uid = "acc_tail_mouse" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/straight | ||
name = "Straight Tail" | ||
icon_state = "straighttail" | ||
uid = "acc_tail_straight" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/spiky | ||
name = "Spiky Tail" | ||
icon_state = "ztail" | ||
uid = "acc_tail_ztail" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/fox | ||
name = "Fox Tail" | ||
icon_state = "fox_tail" | ||
uid = "acc_tail_fox" | ||
|
||
/decl/sprite_accessory/tail/wyrdling/wolf | ||
name = "Wolf Tail" | ||
icon_state = "wolf_tail" | ||
uid = "acc_tail_wolf" |
Binary file not shown.
Binary file not shown.
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,83 @@ | ||
/obj/item/clothing/mask/ghost_caul | ||
name = "mask" | ||
abstract_type = /obj/item/clothing/mask/ghost_caul | ||
desc = "A smooth-surfaced, somewhat eerie mask." | ||
icon = 'mods/content/fantasy/icons/clothing/ghost_caul.dmi' | ||
material = /decl/material/solid/organic/bone | ||
material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC | ||
//default_action_type = /datum/action/item_action/wyrdling // TODO use animal icon instead of mask | ||
|
||
var/const/preview_offset = 28 | ||
var/transformation_trait | ||
var/mob/living/transformation_mob_type | ||
|
||
/obj/item/clothing/mask/ghost_caul/get_preview_screen_locs() | ||
var/static/list/override_preview_screen_locs = list( | ||
"1" = "character_preview_map:1,4:36", | ||
"2" = "character_preview_map:1,3:31", | ||
"4" = "character_preview_map:1,2:26", | ||
"8" = "character_preview_map:1,1:21" | ||
) | ||
return override_preview_screen_locs | ||
|
||
// Used to provide wyrdling mob preview. | ||
/obj/item/clothing/mask/ghost_caul/adjust_mob_overlay(mob/living/user_mob, bodytype, image/overlay, slot, bodypart, use_fallback_if_icon_missing) | ||
if(overlay && (istype(user_mob, /mob/living/human/dummy) || istype(loc, /mob/living/human/dummy))) | ||
var/mutable_appearance/faux = new /mutable_appearance(transformation_mob_type) | ||
faux.pixel_x = preview_offset | ||
faux.appearance_flags |= (RESET_COLOR | RESET_ALPHA | RESET_TRANSFORM) | ||
overlay.overlays += faux | ||
. = ..() | ||
|
||
/obj/item/clothing/mask/ghost_caul/dropped(mob/user, play_dropsound = TRUE) | ||
. = ..() | ||
action_button_name = null | ||
if(action) | ||
if(isliving(user)) | ||
var/mob/living/user_living = user | ||
user_living.actions -= action | ||
QDEL_NULL(action) | ||
|
||
/obj/item/clothing/mask/ghost_caul/equipped(mob/user) | ||
. = ..() | ||
if(!isliving(user)) | ||
return | ||
var/mob/living/user_living = user | ||
if(user_living.get_equipped_slot_for_item(src) == slot_wear_mask_str && user_living.has_trait(/decl/trait/wyrd/wild)) | ||
action_button_name = "Veer" | ||
else if(action) | ||
action_button_name = null | ||
user_living.actions -= action | ||
QDEL_NULL(action) | ||
user_living.update_action_buttons() | ||
|
||
/obj/item/clothing/mask/ghost_caul/attack_self(mob/user) | ||
var/mob/living/user_living = user | ||
if(!istype(user_living) || !user_living.has_trait(/decl/trait/wyrd/wild) || user.get_equipped_slot_for_item(src) != slot_wear_mask_str) | ||
return ..() | ||
if(!user_living.has_trait(transformation_trait)) | ||
to_chat(user, SPAN_WARNING("\The [src] is not aligned with your wyrd, and you cannot use it to transform.")) | ||
return TRUE | ||
// TODO | ||
to_chat(user, SPAN_WARNING("You attempt to veer into your [transformation_mob_type::name] semblance, but find yourself strangely unable.")) | ||
return TRUE | ||
|
||
/obj/item/clothing/mask/ghost_caul/fox | ||
name = "fox mask" | ||
transformation_trait = /decl/trait/wyrd/wild/animal_form/fox | ||
transformation_mob_type = /mob/living/simple_animal/passive/fox | ||
|
||
/obj/item/clothing/mask/ghost_caul/deer | ||
name = "deer mask" | ||
transformation_trait = /decl/trait/wyrd/wild/animal_form/deer | ||
transformation_mob_type = /mob/living/simple_animal/passive/deer | ||
|
||
/obj/item/clothing/mask/ghost_caul/rabbit | ||
name = "rabbit mask" | ||
transformation_trait = /decl/trait/wyrd/wild/animal_form/rabbit | ||
transformation_mob_type = /mob/living/simple_animal/passive/rabbit | ||
|
||
/obj/item/clothing/mask/ghost_caul/bear | ||
name = "bear mask" | ||
transformation_trait = /decl/trait/wyrd/wild/animal_form/bear | ||
transformation_mob_type = /mob/living/simple_animal/hostile/bear |