Skip to content

Commit

Permalink
Adding runestone crafting and very barebones anima material definitions.
Browse files Browse the repository at this point in the history
  • Loading branch information
MistakeNot4892 committed Jul 12, 2024
1 parent 7d410f7 commit 107f3bf
Show file tree
Hide file tree
Showing 21 changed files with 585 additions and 10 deletions.
12 changes: 6 additions & 6 deletions code/modules/mob/transform_procs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -35,20 +35,20 @@

return src

/mob/new_player/AIize()
/mob/new_player/AIize(move = TRUE)
spawning = 1
return ..()

/mob/living/human/AIize(move=1) // 'move' argument needs defining here too because BYOND is dumb
/mob/living/human/AIize(move = TRUE) // 'move' argument needs defining here too because BYOND is dumb
if (HAS_TRANSFORMATION_MOVEMENT_HANDLER(src))
return
QDEL_NULL_LIST(worn_underwear)
return ..(move)
return ..()

/mob/living/silicon/ai/AIize()
/mob/living/silicon/ai/AIize(move = TRUE)
return src

/mob/living/AIize()
/mob/living/AIize(move = TRUE)
if (HAS_TRANSFORMATION_MOVEMENT_HANDLER(src))
return
for(var/t in get_external_organs())
Expand All @@ -60,7 +60,7 @@
set_invisibility(INVISIBILITY_ABSTRACT)
return ..()

/mob/proc/AIize(move=1)
/mob/proc/AIize(move = TRUE)
if(client)
sound_to(src, sound(null, repeat = 0, wait = 0, volume = 85, channel = sound_channels.lobby_channel))// stop the jams for AIs

Expand Down
2 changes: 1 addition & 1 deletion maps/exodus/jobs/synthetics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
return H

/datum/job/computer/do_spawn_special(var/mob/living/character, var/mob/new_player/new_player_mob, var/latejoin)
character = character.AIize(move=0) // AIize the character, but don't move them yet
character = character.AIize(FALSE) // AIize the character, but don't move them yet

// is_available for AI checks that there is an empty core available in this list
var/obj/structure/aicore/deactivated/C = empty_playable_ai_cores[1]
Expand Down
2 changes: 1 addition & 1 deletion maps/ministation/jobs/synthetics.dm
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@
return H

/datum/job/computer/do_spawn_special(var/mob/living/character, var/mob/new_player/new_player_mob, var/latejoin)
character = character.AIize(move=0) // AIize the character, but don't move them yet
character = character.AIize(FALSE) // AIize the character, but don't move them yet

// is_available for AI checks that there is an empty core available in this list
var/obj/structure/aicore/deactivated/C = empty_playable_ai_cores[1]
Expand Down
1 change: 1 addition & 0 deletions maps/modpack_testing/modpack_testing.dm
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@
#include "../../mods/content/xenobiology/_xenobiology.dme"
#include "../../mods/content/pheromones/_pheromones.dme"
#include "../../mods/species/drakes/_drakes.dme" // include before _fantasy.dme so overrides work
#include "../../mods/content/anima/_anima.dme" // include before _fantasy.dme so skill overrides work
#include "../../mods/content/fantasy/_fantasy.dme"
#include "../../mods/pyrelight/_pyrelight.dme" // include after _fantasy.dme so overrides work

Expand Down
1 change: 1 addition & 0 deletions maps/shaded_hills/shaded_hills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@
#include "../../mods/content/mouse_highlights/_mouse_highlight.dme"
#include "../../mods/content/scaling_descriptors.dm"
#include "../../mods/species/drakes/_drakes.dme" // include before _fantasy.dme so overrides work
#include "../../mods/content/anima/_anima.dme" // include before _fantasy.dme so skill overrides work
#include "../../mods/content/fantasy/_fantasy.dme"
#include "../../mods/pyrelight/_pyrelight.dme" // include after _fantasy.dme so overrides work

Expand Down
15 changes: 14 additions & 1 deletion maps/shaded_hills/shaded_hills_skills.dm
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,19 @@
/decl/stack_recipe
recipe_skill = null // set based on material

// ANIMA OVERRIDES
/decl/stack_recipe/anima
recipe_skill = /decl/hierarchy/skill/crafting/artifice

/obj/item/runestone
work_skill = /decl/hierarchy/skill/crafting/artifice

/decl/material/solid/anima
arcana_skill = SKILL_SCIENCE

/decl/runestone_spell_archetype
arcana_skill = SKILL_SCIENCE

// Removal of space skills
/datum/map/shaded_hills/get_available_skill_types()
. = ..()
Expand All @@ -144,4 +157,4 @@
SKILL_ENGINES,
SKILL_DEVICES,
SKILL_CONSTRUCTION, // Anything using this should be replaced with another skill.
)
)
6 changes: 6 additions & 0 deletions mods/content/anima/_anima.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#define ANIMA_SPELL_AOE "aoe"
#define ANIMA_SPELL_MELEE "melee"
#define ANIMA_SPELL_RANGED "ranged"

/decl/modpack/anima
name = "Anima Content"
13 changes: 13 additions & 0 deletions mods/content/anima/_anima.dme
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#ifndef MODPACK_ANIMA
#define MODPACK_ANIMA
// BEGIN_INCLUDE
#include "_anima.dm"
#include "anima_materials.dm"
#include "anima_stack.dm"
#include "runestones.dm"
#include "spell_archetypes.dm"
#include "spell_datum.dm"
#include "spell_effect.dm"
#include "spellscribing.dm"
// END_INCLUDE
#endif
65 changes: 65 additions & 0 deletions mods/content/anima/anima_materials.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
/decl/material/solid/anima
name = "anima"
solid_name = "crystalline anima"
uid = "mat_anima"
opacity = 0.7
color = COLOR_GRAY40
abstract_type = /decl/material/solid/anima
uid = "mat_anima_generic"
var/anima_type = "unaspected"
var/runestone_glow_intensity = 0.3
/// Simple spells that can be scribed onto runestones or cast on the fly.
var/list/cantrips
/// Spell used when a blank is cracked.
var/decl/runestone_spell_archetype/undirected_spell
/// Skill used for general spell knowledge.
var/arcana_skill = SKILL_SCIENCE // TODO: arcana or magic skill

/decl/material/solid/anima/Initialize()
name = "[anima_type] anima"
solid_name = "crystalline [anima_type] anima"
liquid_name = "molten [anima_type] anima"
gas_name = "gaseous [anima_type] anima"
for(var/spell in cantrips)
cantrips -= spell
cantrips |= GET_DECL(spell)
undirected_spell = GET_DECL(undirected_spell)
return ..()

/decl/material/solid/anima/proc/get_spells()
return list()

/decl/material/solid/anima/proc/get_cantrips_by_effect_type(mob/user, effect_type)
// TODO: check arcana_skill on user
for(var/decl/runestone_spell_archetype/cantrip in cantrips)
if(cantrip.has_effect_type(effect_type))
LAZYDISTINCTADD(., cantrip)

/decl/material/solid/anima/air
anima_type = "air"
color = COLOR_SKY_BLUE
runestone_glow_intensity = 0.6
uid = "mat_anima_air"

/decl/material/solid/anima/fire
anima_type = "fire"
color = COLOR_ORANGE
runestone_glow_intensity = 0.6
cantrips = list(
/decl/runestone_spell_archetype/flash,
/decl/runestone_spell_archetype/flare
)
undirected_spell = /decl/runestone_spell_archetype/flare
uid = "mat_anima_fire"

/decl/material/solid/anima/water
anima_type = "water"
color = COLOR_CYAN
runestone_glow_intensity = 0.6
uid = "mat_anima_water"

/decl/material/solid/anima/stone
anima_type = "stone"
color = COLOR_SILVER
runestone_glow_intensity = 0.6
uid = "mat_anima_stone"
57 changes: 57 additions & 0 deletions mods/content/anima/anima_stack.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
/obj/item/stack/material/anima
name = "blanks"
desc = "Crystalline anima, cut into rough, unworked rounds and ready for etching."
singular_name = "blank"
plural_name = "blanks"
icon_state = "anima"
icon = 'mods/content/anima/icons/anima_blank.dmi'
plural_icon_state = "anima-mult"
max_icon_state = "anima-max"
stack_merge_type = /obj/item/stack/material/anima
crafting_stack_type = /obj/item/stack/material/anima
material_alteration = MAT_FLAG_ALTERATION_COLOR | MAT_FLAG_ALTERATION_NAME | MAT_FLAG_ALTERATION_DESC
max_amount = 5

/obj/item/stack/material/anima/mapped/fire
amount = 1
material = /decl/material/solid/anima/fire
is_spawnable_type = TRUE

/obj/item/stack/material/anima/mapped/fire/five
name = "5 fire anima blanks"
amount = 5

/obj/item/stack/material/anima/mapped/water
amount = 1
material = /decl/material/solid/anima/water
is_spawnable_type = TRUE

/obj/item/stack/material/anima/mapped/water/five
name = "5 water anima blanks"
amount = 5

/obj/item/stack/material/anima/mapped/air
amount = 1
material = /decl/material/solid/anima/air
is_spawnable_type = TRUE

/obj/item/stack/material/anima/mapped/air/five
name = "5 air anima blanks"
amount = 5

/obj/item/stack/material/anima/mapped/stone
amount = 1
material = /decl/material/solid/anima/stone
is_spawnable_type = TRUE

/obj/item/stack/material/anima/mapped/stone/five
name = "5 stone anima blanks"
amount = 5

/decl/stack_recipe/anima
abstract_type = /decl/stack_recipe/anima
craft_stack_types = /obj/item/stack/material/anima
required_material = /decl/material/solid/anima

/decl/stack_recipe/anima/runestone
result_type = /obj/item/runestone
Binary file added mods/content/anima/icons/anima_blank.dmi
Binary file not shown.
Binary file added mods/content/anima/icons/runestone_basic.dmi
Binary file not shown.
Binary file added mods/content/anima/icons/runestone_gilded.dmi
Binary file not shown.
Binary file added mods/content/anima/icons/runestone_layered.dmi
Binary file not shown.
Loading

0 comments on commit 107f3bf

Please sign in to comment.