From 1e1f8fcbefbd3b5cf6a84c5cfc573e12edb46a9c Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 12:02:48 -0400 Subject: [PATCH 01/15] given_skills added to classes an attempt to be able to find a class's skills tested and it works w/ rouge, kinda new to code base but im assuming we can tell what job/class somebody is? given thats the case, /type:: can call given_skills or stats_given if not i can try and add a text ref to the class they are --- code/datums/mind.dm | 22 +++++++ .../roguetown/adventurer/types/_advclass.dm | 5 ++ .../adventurer/types/combat/rare/heartfelt.dm | 21 +++++- .../adventurer/types/combat/rogue.dm | 64 +++++++++++++------ 4 files changed, 92 insertions(+), 20 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 99c4d691fc..14e77bc970 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -286,6 +286,28 @@ else to_chat(current, "My [S.name] has weakened!") +// just scoot in right here +/datum/mind/proc/assign_skills(list/Skills, silent) + // list(skill path = num) + for(var/path in Skills) + var/truePath = text2path(path) + var/numValue + if(istext(Skills[path])) // cant assign pick when defining + numValue = textList2nums(Skills[path]) + else + numValue = Skills[path] + adjust_skillrank(truePath, numValue, TRUE) + +/datum/mind/proc/textList2nums(text) // needs a better name + var/list/values = splittext(Skills[path], ",") + values.Remove("pick(", ")") // could do values[1] & values[length(values)] here + for(var/index in 1 to length(values)) + if(isnull(values[index])) continue // not needed me thinks but just in case + values[index] = text2num(values[index]) + //TODO: review? there's gotta b a better way to translate this text to numbers + return pick(values) + + /datum/mind/proc/adjust_skillrank(skill, amt, silent = FALSE) var/datum/skill/S = GetSkillRef(skill) var/amt2gain = 0 diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm index 3df0111ff1..133327387d 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/_advclass.dm @@ -25,6 +25,11 @@ var/vampcompat = TRUE var/list/traits_applied + + var/list/given_skills = list() + + var/list/stat_changes = list() + /datum/advclass/proc/equipme(mob/living/carbon/human/H) if(!H) return FALSE diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm index b00a7bdfb2..fe8983dfe2 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm @@ -10,6 +10,25 @@ pickprob = 100 traits_applied = list(RTRAIT_NOBLE, RTRAIT_NOSEGRAB, RTRAIT_HEAVYARMOR) + given_skills = list( + "/datum/skill/combat/crossbows" = 3, \ + "/datum/skill/combat/polearms" = 2, \ + "/datum/skill/combat/axesmaces" = 3, \ + "/datum/skill/combat/bows" = 3, \ + "/datum/skill/combat/wrestling" = 2, \ + "/datum/skill/combat/unarmed" = 2, \ + "/datum/skill/misc/swimming" = 1, \ + "/datum/skill/misc/climbing" = 2, \ + "/datum/skill/misc/athletics" = 3, \ + "/datum/skill/combat/swords" = 4, \ + "/datum/skill/combat/knives" = 2, \ + "/datum/skill/misc/reading" = 4, \ + "/datum/skill/misc/sneaking" = 2, \ + "/datum/skill/misc/medicine" = 1, \ + "/datum/skill/misc/riding" = 3 + ) + + /datum/outfit/job/roguetown/adventurer/heartfeltlord/pre_equip(mob/living/carbon/human/H) ..() shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt @@ -50,4 +69,4 @@ ADD_TRAIT(H, RTRAIT_NOBLE, TRAIT_GENERIC) ADD_TRAIT(H, RTRAIT_NOSEGRAB, TRAIT_GENERIC) ADD_TRAIT(H, RTRAIT_HEAVYARMOR, TRAIT_GENERIC) - ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) \ No newline at end of file + ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index 59cf1a2aab..742e12a4d4 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -17,6 +17,28 @@ outfit = /datum/outfit/job/roguetown/adventurer/rogue traits_applied = list(RTRAIT_MEDIUMARMOR) + given_skills = list( + "/datum/skill/combat/swords" = 3, \ + "/datum/skill/combat/axesmaces" = 2, \ + "/datum/skill/combat/crossbows" = "pick(,2,3,3,)", \ + "/datum/skill/misc/athletics" = 4, \ + "/datum/skill/combat/bows" = 3, \ + "/datum/skill/combat/wrestling" = 3, \ + "/datum/skill/combat/unarmed" = 3, \ + "/datum/skill/combat/knives" = 4, \ + "/datum/skill/combat/polearms" = 1, \ + "/datum/skill/misc/swimming" = 3, \ + "/datum/skill/misc/climbing" = "pick(,5,6,)", \ + "/datum/skill/craft/crafting" = 1, \ + "/datum/skill/misc/reading" = "pick(,0,1,1,)", \ + "/datum/skill/craft/traps" = 2, \ + "/datum/skill/misc/medicine" = "pick(,0,1,)", \ + "/datum/skill/misc/sneaking" = 5, \ + "/datum/skill/misc/stealing" = 5, \ + "/datum/skill/misc/riding" = "pick(,1,2,)", \ + "/datum/skill/craft/engineering" = 1 + ) + /datum/outfit/job/roguetown/adventurer/rogue allowed_patrons = list(/datum/patron/divine/xylix, /datum/patron/inhumen/matthios) @@ -24,25 +46,29 @@ ..() shoes = /obj/item/clothing/shoes/roguetown/boots neck = /obj/item/storage/belt/rogue/pouch/coins/poor - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, pick(2,3,3), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(5,6), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, pick(0,1,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 5, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/stealing, 5, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/engineering, 1, TRUE) + H.mind.assign_skills(/datum/advclass/rogue::given_skills, TRUE) + // i don't like this, but since we'll know what datum goes here i don't see a big issue? + + // temp removal + // H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, pick(2,3,3), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/knives, 4, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(5,6), TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/reading, pick(0,1,1), TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/traps, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 5, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/stealing, 5, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(1,2), TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/engineering, 1, TRUE) pants = /obj/item/clothing/under/roguetown/trou/leather shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt gloves = /obj/item/clothing/gloves/roguetown/leather From b10b95649a21f4ea6a818a5f3b5f5598a51d75e7 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 12:08:09 -0400 Subject: [PATCH 02/15] whoops forgot i made a proc for it --- code/datums/mind.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 14e77bc970..e0c3529654 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -299,7 +299,7 @@ adjust_skillrank(truePath, numValue, TRUE) /datum/mind/proc/textList2nums(text) // needs a better name - var/list/values = splittext(Skills[path], ",") + var/list/values = splittext(text, ",") values.Remove("pick(", ")") // could do values[1] & values[length(values)] here for(var/index in 1 to length(values)) if(isnull(values[index])) continue // not needed me thinks but just in case From ca2f78ef8b70e459feeb417b50e9856795bed6a3 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 12:55:26 -0400 Subject: [PATCH 03/15] added option to do rand/pick also added warrior, ig im making a faux const, but i don't think theres massive instances of these classes(?) so having them shouldn't be a big deal? --- code/datums/mind.dm | 7 ++- .../adventurer/types/combat/warrior.dm | 49 +++++++++++++------ 2 files changed, 40 insertions(+), 16 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index e0c3529654..6f446810d9 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -300,12 +300,15 @@ /datum/mind/proc/textList2nums(text) // needs a better name var/list/values = splittext(text, ",") - values.Remove("pick(", ")") // could do values[1] & values[length(values)] here + var/option = 0 // 0 = pick, 1 = rand + if(values[1] != "pick(") option = 1 + values.Remove(values[1], values[length(values)]) // could do values[1] & values[length(values)] here for(var/index in 1 to length(values)) if(isnull(values[index])) continue // not needed me thinks but just in case values[index] = text2num(values[index]) //TODO: review? there's gotta b a better way to translate this text to numbers - return pick(values) + return option ? rand(values[1], values[2]) : pick(values) + // i dont like the list[index] in rand, n im p sure pick(1,2,3) = rand(1,3) so /datum/mind/proc/adjust_skillrank(skill, amt, silent = FALSE) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index 8cc5d11ab1..53e2fdabf6 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -18,6 +18,26 @@ outfit = /datum/outfit/job/roguetown/adventurer/sfighter traits_applied = list(RTRAIT_HEAVYARMOR) + + given_skills = list( + "/datum/skill/misc/sneaking" = "pick(,1,1,2,)", \ + "/datum/skill/combat/crossbows" = "pick(,1,2,)", \ + "/datum/skill/combat/polearms" = 2, \ + "/datum/skill/combat/axesmaces" = 2, \ + "/datum/skill/combat/bows" = "pick(,1,2,)", \ + "/datum/skill/combat/wrestling" = 2, \ + "/datum/skill/combat/unarmed" = 2, \ + "/datum/skill/misc/athletics" = 4, \ + "/datum/skill/combat/swords" = 3, \ + "/datum/skill/misc/swimming" = 1, \ + "/datum/skill/misc/climbing" = 2, \ + "/datum/skill/misc/riding" = "pick(,2,3,)", \ + "/datum/skill/misc/medicine" = 1, \ + "/datum/skill/combat/knives" = "rand(,1,3,)" + ) + // tempted to just change rand(1,2) to pick 1,2,3 + + /datum/outfit/job/roguetown/adventurer/sfighter/pre_equip(mob/living/carbon/human/H) ..() H.adjust_blindness(-3) @@ -29,20 +49,21 @@ if("Warrior") H.set_blindness(0) to_chat(H, "Warriors are well rounded fighters, experienced often in many theaters of warfare and battle they are capable of rising to any challenge that might greet them on the path.") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, rand(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, rand(1,3), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) + H.mind.assign_skills(/datum/advclass/sfighter::given_skills, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/bows, rand(1,2), TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/knives, rand(1,3), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,1,2), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) H.change_stat("strength", 2) H.change_stat("endurance", 2) // 7 stat points total as a low-skill martial role without magic. Compared to Pally with 5 points. H.change_stat("constitution", 2) From d83d68f1973a7145c22d0f08a6bad9cf0d396477 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 13:23:46 -0400 Subject: [PATCH 04/15] job example plus adjust_experrience tested the job, after_spawn() does take care of it. didnt test adjust_experience() i assume from looking it works the same as adjust_skillrank() idk --- code/datums/mind.dm | 2 +- code/modules/jobs/job_types/_job.dm | 2 ++ .../job_types/roguetown/serfs/blacksmith.dm | 23 +++++++++++++------ 3 files changed, 19 insertions(+), 8 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 6f446810d9..bf46a9264d 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -296,7 +296,7 @@ numValue = textList2nums(Skills[path]) else numValue = Skills[path] - adjust_skillrank(truePath, numValue, TRUE) + adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? /datum/mind/proc/textList2nums(text) // needs a better name var/list/values = splittext(text, ",") diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 1dde0607b9..2cafb0c399 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -130,6 +130,8 @@ if(roundstart_experience) var/mob/living/carbon/human/experiencer = H for(var/i in roundstart_experience) + if(istext(roundstart_experience[i])) + roundstart_experience[i] = experiencer.mind.textList2nums(roundstart_experience[i]) experiencer.mind.adjust_experience(i, roundstart_experience[i], TRUE) if(spells) diff --git a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm index 830c14618e..fcbe52feff 100644 --- a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm @@ -24,6 +24,14 @@ give_bank_account = 11 min_pq = 1 max_pq = null + skills = list( + "/datum/skill/combat/axesmaces" = 3, \ + "/datum/skill/combat/unarmed" = 2, \ + "/datum/skill/craft/crafting" = 3, \ + "/datum/skill/combat/wrestling" = 3, \ + "/datum/skill/craft/blacksmithing" = "pick(,3,4,)", \ + "/datum/skill/craft/armorsmithing" = "pick(,3,4,)", \ + "/datum/skill/misc/reading" = 2, ) /datum/outfit/job/roguetown/armorsmith/pre_equip(mob/living/carbon/human/H) ..() @@ -31,13 +39,14 @@ if(prob(50)) head = /obj/item/clothing/head/roguetown/hatblu if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(3,4), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, pick(3,4), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(3,4), TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, pick(3,4), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) + // assuming after_spawn() calls here if(H.age == AGE_OLD) H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(1,2), TRUE) H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, pick(1,2), TRUE) From 5d7170f588caddc14cfe9ba1de575abac6645221 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 17:09:44 -0400 Subject: [PATCH 05/15] lol i rewrote change_stat also warrior and rouge have both the stat and skills. amazon is there. I DID NOT TEST change_stat!!! COMPILE->TEST pipeline is like 3 mins for me --- code/datums/mind.dm | 11 +- .../adventurer/types/combat/amazon.dm | 40 ++- .../adventurer/types/combat/rogue.dm | 20 +- .../adventurer/types/combat/warrior.dm | 12 +- code/modules/mob/living/stats.dm | 339 ++++++++++-------- 5 files changed, 252 insertions(+), 170 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index bf46a9264d..94f7617e8c 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -287,7 +287,7 @@ to_chat(current, "My [S.name] has weakened!") // just scoot in right here -/datum/mind/proc/assign_skills(list/Skills, silent) +/datum/mind/proc/assign_experiences(list/Skills, silent, option) // list(skill path = num) for(var/path in Skills) var/truePath = text2path(path) @@ -296,8 +296,13 @@ numValue = textList2nums(Skills[path]) else numValue = Skills[path] - adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? - + switch(option) + if("Skills") + adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? + if("Stats") + current.change_stat(path, Skills[path]) + + /datum/mind/proc/textList2nums(text) // needs a better name var/list/values = splittext(text, ",") var/option = 0 // 0 = pick, 1 = rand diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm index dc53b5d913..ff2a3c3902 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm @@ -19,20 +19,36 @@ maxchosen = 2 traits_applied = list(RTRAIT_CRITICAL_RESISTANCE, TRAIT_NOPAINSTUN, TRAIT_STEELHEARTED) + + given_skills = list( + "/datum/skill/combat/polearms" = 3, \ + "/datum/skill/combat/swords" = 1, \ + "/datum/skill/combat/knives" = 1, \ + "/datum/skill/combat/bows" = 3, \ + "/datum/skill/combat/wrestling" = 3, \ + "/datum/skill/combat/unarmed" = 2, \ + "/datum/skill/craft/crafting" = 1, \ + "/datum/skill/misc/swimming" = 2, \ + "/datum/skill/misc/climbing" = 2, \ + "/datum/skill/misc/riding" = 2, \ + "/datum/skill/misc/athletics" = 2, \ + "/datum/skill/misc/medicine" = 1 + ) /datum/outfit/job/roguetown/adventurer/amazon/pre_equip(mob/living/carbon/human/H) ..() - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) + H.mind.assign_experiences(/datum/advclass/amazon::given_skills, TRUE, "Skills") + // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/knives, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/riding, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) belt = /obj/item/storage/belt/rogue/leather neck = /obj/item/storage/belt/rogue/pouch/coins/poor beltl = /obj/item/rogueweapon/huntingknife diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index 742e12a4d4..960592a6dd 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -39,6 +39,13 @@ "/datum/skill/craft/engineering" = 1 ) + stat_changes = list( + "strength" = -1, + "perception" = 2, + "speed" = "pick(,3,4,)", + "intelligence" =2, + ) + /datum/outfit/job/roguetown/adventurer/rogue allowed_patrons = list(/datum/patron/divine/xylix, /datum/patron/inhumen/matthios) @@ -46,7 +53,7 @@ ..() shoes = /obj/item/clothing/shoes/roguetown/boots neck = /obj/item/storage/belt/rogue/pouch/coins/poor - H.mind.assign_skills(/datum/advclass/rogue::given_skills, TRUE) + H.mind.assign_experiences(/datum/advclass/rogue::given_skills, TRUE, "Skills") // i don't like this, but since we'll know what datum goes here i don't see a big issue? // temp removal @@ -82,7 +89,10 @@ beltl = /obj/item/rogueweapon/huntingknife/idagger/steel ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) - H.change_stat("strength", -1) - H.change_stat("perception", 2) - H.change_stat("speed", pick(3,4), TRUE) - H.change_stat("intelligence", 2) + H.mind.assign_experiences(/datum/advclass/rogue::stat_changes, TRUE, "Stats") + + // temp removal + // H.change_stat("strength", -1) + // H.change_stat("perception", 2) + // H.change_stat("speed", pick(3,4)) + // H.change_stat("intelligence", 2) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index 53e2fdabf6..b0e3cb81ab 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -36,7 +36,12 @@ "/datum/skill/combat/knives" = "rand(,1,3,)" ) // tempted to just change rand(1,2) to pick 1,2,3 - + stat_changes = list( + "strength" = 2, + "endurance" = 2, + "constitution" = 2, + "speed" = 1 + ) /datum/outfit/job/roguetown/adventurer/sfighter/pre_equip(mob/living/carbon/human/H) ..() @@ -49,7 +54,7 @@ if("Warrior") H.set_blindness(0) to_chat(H, "Warriors are well rounded fighters, experienced often in many theaters of warfare and battle they are capable of rising to any challenge that might greet them on the path.") - H.mind.assign_skills(/datum/advclass/sfighter::given_skills, TRUE) + H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "Skills") // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) @@ -64,6 +69,9 @@ // H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) + + H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "Stats") + H.change_stat("strength", 2) H.change_stat("endurance", 2) // 7 stat points total as a low-skill martial role without magic. Compared to Pally with 5 points. H.change_stat("constitution", 2) diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm index d21d626d3a..66549c25a4 100644 --- a/code/modules/mob/living/stats.dm +++ b/code/modules/mob/living/stats.dm @@ -1,4 +1,9 @@ +#define STATTOVAR list("strength" = "STR", "perception" = "PRE", "intelligence" = "INT", \ + "constitution" = "CON", "endurance"= "END", "speed" = "SPD", "fortune" = "LUK") +/mob/living/proc/get_stat_var(stat) + return STATTOVAR[stat] + /mob/living var/STASTR = 10 var/STAPER = 10 @@ -93,166 +98,204 @@ H.eye_color = "ff0000" H.voice_color = "ff0000" + /mob/living/proc/change_stat(stat, amt, index) - if(!stat) - return - if(amt == 0 && index) - if(statindex[index]) - change_stat(statindex[index]["stat"], -1*statindex[index]["amt"]) - statindex[index] = null - return + // i have the tism + if(!stat) return if(!amt) + if(index) + change_stat(stat, -1*statindex[index]) + stat[index] = null // leaving this here until i figure out what it actually does + return return + if(index) - if(statindex[index]) - return //we cannot make a new index - else - statindex[index] = list("stat" = stat, "amt" = amt) -// statindex[index]["stat"] = stat -// statindex[index]["amt"] = amt + if(statindex[index]) return + statindex[index] = list("stat" = stat, "amt" = amt) + var/newamt = 0 - switch(stat) - if("strength") - newamt = STASTR + amt - if(BUFSTR < 0) - BUFSTR = BUFSTR + amt - if(BUFSTR > 0) - newamt = STASTR + BUFSTR - BUFSTR = 0 - if(BUFSTR > 0) - BUFSTR = BUFSTR + amt - if(BUFSTR < 0) - newamt = STASTR + BUFSTR - BUFSTR = 0 - while(newamt < 1) - newamt++ - BUFSTR-- - while(newamt > 20) - newamt-- - BUFSTR++ - STASTR = newamt + var/normal_stat = vars["STA[get_stat_var(stat)]"] + var/buff_stat = vars["BUF[get_stat_var(stat)]"] + newamt = normal_stat + amt + if(buff_stat != 0) // if it is above or below 0 + buff_stat += amt + if(buff_stat != 0) // im gonna kms + newamt = normal_stat + buff_stat + buff_stat = 0 + while(newamt < 1) + newamt++ + buff_stat-- + while(newamt > 20) + newamt-- + buff_stat++ + normal_stat = newamt + update_fov_angles() + + + + + + +// /mob/living/proc/change_stat(stat, amt, index) +// if(!stat) +// return +// if(amt == 0 && index) +// if(statindex[index]) +// change_stat(statindex[index]["stat"], -1*statindex[index]["amt"]) // there is not a single instance where change_stat(stat) is not the string stat +// statindex[index] = null +// return +// if(!amt) +// return +// if(index) +// if(statindex[index]) +// return //we cannot make a new index +// else +// statindex[index] = list("stat" = stat, "amt" = amt) +// // statindex[index]["stat"] = stat +// // statindex[index]["amt"] = amt +// var/newamt = 0 +// switch(stat) +// if("strength") +// newamt = STASTR + amt +// if(BUFSTR < 0) +// BUFSTR = BUFSTR + amt +// if(BUFSTR > 0) +// newamt = STASTR + BUFSTR +// BUFSTR = 0 +// if(BUFSTR > 0) +// BUFSTR = BUFSTR + amt +// if(BUFSTR < 0) +// newamt = STASTR + BUFSTR +// BUFSTR = 0 +// while(newamt < 1) +// newamt++ +// BUFSTR-- +// while(newamt > 20) +// newamt-- +// BUFSTR++ +// STASTR = newamt - if("perception") - newamt = STAPER + amt - if(BUFPER < 0) - BUFPER = BUFPER + amt - if(BUFPER > 0) - newamt = STAPER + BUFPER - BUFPER = 0 - if(BUFPER > 0) - BUFPER = BUFPER + amt - if(BUFPER < 0) - newamt = STAPER + BUFPER - BUFPER = 0 - while(newamt < 1) - newamt++ - BUFPER-- - while(newamt > 20) - newamt-- - BUFPER++ - STAPER = newamt +// if("perception") +// newamt = STAPER + amt +// if(BUFPER < 0) +// BUFPER = BUFPER + amt +// if(BUFPER > 0) +// newamt = STAPER + BUFPER +// BUFPER = 0 +// if(BUFPER > 0) +// BUFPER = BUFPER + amt +// if(BUFPER < 0) +// newamt = STAPER + BUFPER +// BUFPER = 0 +// while(newamt < 1) +// newamt++ +// BUFPER-- +// while(newamt > 20) +// newamt-- +// BUFPER++ +// STAPER = newamt - update_fov_angles() +// update_fov_angles() - if("intelligence") - newamt = STAINT + amt - if(BUFINT < 0) - BUFINT = BUFINT + amt - if(BUFINT > 0) - newamt = STAINT + BUFINT - BUFINT = 0 - if(BUFINT > 0) - BUFINT = BUFINT + amt - if(BUFINT < 0) - newamt = STAINT + BUFINT - BUFINT = 0 - while(newamt < 1) - newamt++ - BUFINT-- - while(newamt > 20) - newamt-- - BUFINT++ - STAINT = newamt +// if("intelligence") +// newamt = STAINT + amt +// if(BUFINT < 0) +// BUFINT = BUFINT + amt +// if(BUFINT > 0) +// newamt = STAINT + BUFINT +// BUFINT = 0 +// if(BUFINT > 0) +// BUFINT = BUFINT + amt +// if(BUFINT < 0) +// newamt = STAINT + BUFINT +// BUFINT = 0 +// while(newamt < 1) +// newamt++ +// BUFINT-- +// while(newamt > 20) +// newamt-- +// BUFINT++ +// STAINT = newamt - if("constitution") - newamt = STACON + amt - if(BUFCON < 0) - BUFCON = BUFCON + amt - if(BUFCON > 0) - newamt = STACON + BUFCON - BUFCON = 0 - if(BUFCON > 0) - BUFCON = BUFCON + amt - if(BUFCON < 0) - newamt = STACON + BUFCON - BUFCON = 0 - while(newamt < 1) - newamt++ - BUFCON-- - while(newamt > 20) - newamt-- - BUFCON++ - STACON = newamt +// if("constitution") +// newamt = STACON + amt +// if(BUFCON < 0) +// BUFCON = BUFCON + amt +// if(BUFCON > 0) +// newamt = STACON + BUFCON +// BUFCON = 0 +// if(BUFCON > 0) +// BUFCON = BUFCON + amt +// if(BUFCON < 0) +// newamt = STACON + BUFCON +// BUFCON = 0 +// while(newamt < 1) +// newamt++ +// BUFCON-- +// while(newamt > 20) +// newamt-- +// BUFCON++ +// STACON = newamt - if("endurance") - newamt = STAEND + amt - if(BUFEND < 0) - BUFEND = BUFEND + amt - if(BUFEND > 0) - newamt = STAEND + BUFEND - BUFEND = 0 - if(BUFEND > 0) - BUFEND = BUFEND + amt - if(BUFEND < 0) - newamt = STAEND + BUFEND - BUFEND = 0 - while(newamt < 1) - newamt++ - BUFEND-- - while(newamt > 20) - newamt-- - BUFEND++ - STAEND = newamt +// if("endurance") +// newamt = STAEND + amt +// if(BUFEND < 0) +// BUFEND = BUFEND + amt +// if(BUFEND > 0) +// newamt = STAEND + BUFEND +// BUFEND = 0 +// if(BUFEND > 0) +// BUFEND = BUFEND + amt +// if(BUFEND < 0) +// newamt = STAEND + BUFEND +// BUFEND = 0 +// while(newamt < 1) +// newamt++ +// BUFEND-- +// while(newamt > 20) +// newamt-- +// BUFEND++ +// STAEND = newamt - if("speed") - newamt = STASPD + amt - if(BUFSPE < 0) - BUFSPE = BUFSPE + amt - if(BUFSPE > 0) - newamt = STASPD + BUFSPE - BUFSPE = 0 - if(BUFSPE > 0) - BUFSPE = BUFSPE + amt - if(BUFSPE < 0) - newamt = STASPD + BUFSPE - BUFSPE = 0 - while(newamt < 1) - newamt++ - BUFSPE-- - while(newamt > 20) - newamt-- - BUFSPE++ - STASPD = newamt +// if("speed") +// newamt = STASPD + amt +// if(BUFSPE < 0) +// BUFSPE = BUFSPE + amt +// if(BUFSPE > 0) +// newamt = STASPD + BUFSPE +// BUFSPE = 0 +// if(BUFSPE > 0) +// BUFSPE = BUFSPE + amt +// if(BUFSPE < 0) +// newamt = STASPD + BUFSPE +// BUFSPE = 0 +// while(newamt < 1) +// newamt++ +// BUFSPE-- +// while(newamt > 20) +// newamt-- +// BUFSPE++ +// STASPD = newamt - if("fortune") - newamt = STALUC + amt - if(BUFLUC < 0) - BUFLUC = BUFLUC + amt - if(BUFLUC > 0) - newamt = STALUC + BUFLUC - BUFLUC = 0 - if(BUFLUC > 0) - BUFLUC = BUFLUC + amt - if(BUFLUC < 0) - newamt = STALUC + BUFLUC - BUFLUC = 0 - while(newamt < 1) - newamt++ - BUFLUC-- - while(newamt > 20) - newamt-- - BUFLUC++ - STALUC = newamt +// if("fortune") +// newamt = STALUC + amt +// if(BUFLUC < 0) +// BUFLUC = BUFLUC + amt +// if(BUFLUC > 0) +// newamt = STALUC + BUFLUC +// BUFLUC = 0 +// if(BUFLUC > 0) +// BUFLUC = BUFLUC + amt +// if(BUFLUC < 0) +// newamt = STALUC + BUFLUC +// BUFLUC = 0 +// while(newamt < 1) +// newamt++ +// BUFLUC-- +// while(newamt > 20) +// newamt-- +// BUFLUC++ +// STALUC = newamt /proc/generic_stat_comparison(userstat as num, targetstat as num) var/difference = userstat - targetstat From 2b57717731e27ec32f3137a2dcf2561a7285572c Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sun, 19 May 2024 18:21:21 -0400 Subject: [PATCH 06/15] fixes soemthin was runtiming and bufspe should be bufspd made an oopsie with vars[variable], fixed it change_stat rewritten seems fine --- code/datums/mind.dm | 2 +- .../roguetown/adventurer/types/combat/rogue.dm | 1 + code/modules/mob/living/stats.dm | 17 ++++++++--------- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 94f7617e8c..a117280803 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -300,7 +300,7 @@ if("Skills") adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? if("Stats") - current.change_stat(path, Skills[path]) + current.change_stat(path, numValue) /datum/mind/proc/textList2nums(text) // needs a better name diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index 960592a6dd..a4795f8f95 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -89,6 +89,7 @@ beltl = /obj/item/rogueweapon/huntingknife/idagger/steel ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) + H.mind.assign_experiences(/datum/advclass/rogue::stat_changes, TRUE, "Stats") // temp removal diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm index 66549c25a4..8511885b18 100644 --- a/code/modules/mob/living/stats.dm +++ b/code/modules/mob/living/stats.dm @@ -1,6 +1,6 @@ -#define STATTOVAR list("strength" = "STR", "perception" = "PRE", "intelligence" = "INT", \ - "constitution" = "CON", "endurance"= "END", "speed" = "SPD", "fortune" = "LUK") +#define STATTOVAR list("strength" = "STR", "perception" = "PER", "intelligence" = "INT", \ + "constitution" = "CON", "endurance"= "END", "speed" = "SPD", "fortune" = "LUC") /mob/living/proc/get_stat_var(stat) return STATTOVAR[stat] @@ -18,7 +18,7 @@ var/BUFINT = 0 var/BUFCON = 0 var/BUFEND = 0 - var/BUFSPE = 0 + var/BUFSPD = 0 var/BUFLUC = 0 var/statbuf = FALSE var/list/statindex = list() @@ -102,17 +102,15 @@ /mob/living/proc/change_stat(stat, amt, index) // i have the tism if(!stat) return - if(!amt) - if(index) - change_stat(stat, -1*statindex[index]) + if(amt == 0 && index) + if(statindex[index]) + change_stat(stat, -1*statindex[index]["amt"]) stat[index] = null // leaving this here until i figure out what it actually does return return - if(index) if(statindex[index]) return statindex[index] = list("stat" = stat, "amt" = amt) - var/newamt = 0 var/normal_stat = vars["STA[get_stat_var(stat)]"] var/buff_stat = vars["BUF[get_stat_var(stat)]"] @@ -128,7 +126,8 @@ while(newamt > 20) newamt-- buff_stat++ - normal_stat = newamt + vars["BUF[get_stat_var(stat)]"] = buff_stat + vars["STA[get_stat_var(stat)]"] = newamt update_fov_angles() From f48f6ec2fd39020086d23736ef1007ebb9ccebe2 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Wed, 22 May 2024 22:01:22 -0400 Subject: [PATCH 07/15] review changes part 1 --- code/datums/mind.dm | 10 ++--- .../adventurer/types/combat/amazon.dm | 25 +++++------ .../adventurer/types/combat/rogue.dm | 41 ++++++++++--------- .../adventurer/types/combat/warrior.dm | 29 ++++++------- code/modules/mob/living/stats.dm | 8 ++-- 5 files changed, 59 insertions(+), 54 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index a117280803..603772f241 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -287,15 +287,15 @@ to_chat(current, "My [S.name] has weakened!") // just scoot in right here -/datum/mind/proc/assign_experiences(list/Skills, silent, option) +/datum/mind/proc/assign_experiences(list/skills, silent, option) // list(skill path = num) - for(var/path in Skills) + for(var/path in skills) var/truePath = text2path(path) var/numValue - if(istext(Skills[path])) // cant assign pick when defining - numValue = textList2nums(Skills[path]) + if(istext(skills[path])) // cant assign pick when defining + numValue = textList2nums(skills[path]) else - numValue = Skills[path] + numValue = skills[path] switch(option) if("Skills") adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm index ff2a3c3902..a3289acf7a 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm @@ -21,18 +21,19 @@ given_skills = list( - "/datum/skill/combat/polearms" = 3, \ - "/datum/skill/combat/swords" = 1, \ - "/datum/skill/combat/knives" = 1, \ - "/datum/skill/combat/bows" = 3, \ - "/datum/skill/combat/wrestling" = 3, \ - "/datum/skill/combat/unarmed" = 2, \ - "/datum/skill/craft/crafting" = 1, \ - "/datum/skill/misc/swimming" = 2, \ - "/datum/skill/misc/climbing" = 2, \ - "/datum/skill/misc/riding" = 2, \ - "/datum/skill/misc/athletics" = 2, \ - "/datum/skill/misc/medicine" = 1 + /datum/skill/combat/polearms = 3, \ + /datum/skill/combat/swords = 1, \ + /datum/skill/combat/knives = 1, \ + /datum/skill/combat/bows = 3, \ + /datum/skill/combat/wrestling = 3, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/craft/crafting = 1, \ + /datum/skill/misc/swimming = 2, \ + /datum/skill/misc/climbing = 2, \ + /datum/skill/misc/riding = 2, \ + /datum/skill/misc/athletics = 2, \ + /datum/skill/misc/medicine = 1 + ) /datum/outfit/job/roguetown/adventurer/amazon/pre_equip(mob/living/carbon/human/H) ..() diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index a4795f8f95..1f308f2c70 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -18,31 +18,32 @@ traits_applied = list(RTRAIT_MEDIUMARMOR) given_skills = list( - "/datum/skill/combat/swords" = 3, \ - "/datum/skill/combat/axesmaces" = 2, \ - "/datum/skill/combat/crossbows" = "pick(,2,3,3,)", \ - "/datum/skill/misc/athletics" = 4, \ - "/datum/skill/combat/bows" = 3, \ - "/datum/skill/combat/wrestling" = 3, \ - "/datum/skill/combat/unarmed" = 3, \ - "/datum/skill/combat/knives" = 4, \ - "/datum/skill/combat/polearms" = 1, \ - "/datum/skill/misc/swimming" = 3, \ - "/datum/skill/misc/climbing" = "pick(,5,6,)", \ - "/datum/skill/craft/crafting" = 1, \ - "/datum/skill/misc/reading" = "pick(,0,1,1,)", \ - "/datum/skill/craft/traps" = 2, \ - "/datum/skill/misc/medicine" = "pick(,0,1,)", \ - "/datum/skill/misc/sneaking" = 5, \ - "/datum/skill/misc/stealing" = 5, \ - "/datum/skill/misc/riding" = "pick(,1,2,)", \ - "/datum/skill/craft/engineering" = 1 + /datum/skill/combat/swords = 3, \ + /datum/skill/combat/axesmaces = 2, \ + /datum/skill/combat/crossbows = list(2,3,3), \ + /datum/skill/misc/athletics = 4, \ + /datum/skill/combat/bows = 3, \ + /datum/skill/combat/wrestling = 3, \ + /datum/skill/combat/unarmed = 3, \ + /datum/skill/combat/knives = 4, \ + /datum/skill/combat/polearms = 1, \ + /datum/skill/misc/swimming = 3, \ + /datum/skill/misc/climbing = list(5,6), \ + /datum/skill/craft/crafting = 1, \ + /datum/skill/misc/reading = list(0,1,1,1), \ + /datum/skill/craft/traps = 2, \ + /datum/skill/misc/medicine = list(0,1), \ + /datum/skill/misc/sneaking = 5, \ + /datum/skill/misc/stealing = 5, \ + /datum/skill/misc/riding = list(1,2), \ + /datum/skill/craft/engineering = 1 + ) stat_changes = list( "strength" = -1, "perception" = 2, - "speed" = "pick(,3,4,)", + "speed" = list(3,4), "intelligence" =2, ) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index b0e3cb81ab..a9433b281f 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -20,20 +20,21 @@ given_skills = list( - "/datum/skill/misc/sneaking" = "pick(,1,1,2,)", \ - "/datum/skill/combat/crossbows" = "pick(,1,2,)", \ - "/datum/skill/combat/polearms" = 2, \ - "/datum/skill/combat/axesmaces" = 2, \ - "/datum/skill/combat/bows" = "pick(,1,2,)", \ - "/datum/skill/combat/wrestling" = 2, \ - "/datum/skill/combat/unarmed" = 2, \ - "/datum/skill/misc/athletics" = 4, \ - "/datum/skill/combat/swords" = 3, \ - "/datum/skill/misc/swimming" = 1, \ - "/datum/skill/misc/climbing" = 2, \ - "/datum/skill/misc/riding" = "pick(,2,3,)", \ - "/datum/skill/misc/medicine" = 1, \ - "/datum/skill/combat/knives" = "rand(,1,3,)" + /datum/skill/misc/sneaking = list(1,1,2), \ + /datum/skill/combat/crossbows = list(1,2), \ + /datum/skill/combat/polearms = 2, \ + /datum/skill/combat/axesmaces = 2, \ + /datum/skill/combat/bows = list(1,2), \ + /datum/skill/combat/wrestling = 2, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/misc/athletics = 4, \ + /datum/skill/combat/swords = 3, \ + /datum/skill/misc/swimming = 1, \ + /datum/skill/misc/climbing = 2, \ + /datum/skill/misc/riding = list(2,3), \ + /datum/skill/misc/medicine = 1, \ + /datum/skill/combat/knives = list(1,3) + ) // tempted to just change rand(1,2) to pick 1,2,3 stat_changes = list( diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm index 8511885b18..5d46c7e4b9 100644 --- a/code/modules/mob/living/stats.dm +++ b/code/modules/mob/living/stats.dm @@ -1,7 +1,8 @@ -#define STATTOVAR list("strength" = "STR", "perception" = "PER", "intelligence" = "INT", \ - "constitution" = "CON", "endurance"= "END", "speed" = "SPD", "fortune" = "LUC") + /mob/living/proc/get_stat_var(stat) + var/static/list/STATTOVAR= list("strength" = "STR", "perception" = "PER", "intelligence" = "INT", \ + "constitution" = "CON", "endurance"= "END", "speed" = "SPD", "fortune" = "LUC") return STATTOVAR[stat] /mob/living @@ -101,7 +102,8 @@ /mob/living/proc/change_stat(stat, amt, index) // i have the tism - if(!stat) return + if(!stat) + return if(amt == 0 && index) if(statindex[index]) change_stat(stat, -1*statindex[index]["amt"]) From d00ca0d77f5f33eaf5aecd1a1472721175eb4e0c Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Wed, 22 May 2024 22:07:21 -0400 Subject: [PATCH 08/15] final review changes, p sure? --- code/datums/mind.dm | 19 ++---------- code/modules/jobs/job_types/_job.dm | 2 -- .../adventurer/types/combat/rare/heartfelt.dm | 31 ++++++++++--------- .../job_types/roguetown/serfs/blacksmith.dm | 15 ++++----- 4 files changed, 27 insertions(+), 40 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 603772f241..7182087b8b 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -290,31 +290,18 @@ /datum/mind/proc/assign_experiences(list/skills, silent, option) // list(skill path = num) for(var/path in skills) - var/truePath = text2path(path) var/numValue - if(istext(skills[path])) // cant assign pick when defining - numValue = textList2nums(skills[path]) + if(islist(skills[path])) // cant assign pick when defining + numValue = pick(skills[path]) else numValue = skills[path] switch(option) if("Skills") - adjust_experience(truePath, numValue, TRUE) // change this to what i think is a rewritten proc? + adjust_experience(path, numValue, TRUE) // change this to what i think is a rewritten proc? if("Stats") current.change_stat(path, numValue) -/datum/mind/proc/textList2nums(text) // needs a better name - var/list/values = splittext(text, ",") - var/option = 0 // 0 = pick, 1 = rand - if(values[1] != "pick(") option = 1 - values.Remove(values[1], values[length(values)]) // could do values[1] & values[length(values)] here - for(var/index in 1 to length(values)) - if(isnull(values[index])) continue // not needed me thinks but just in case - values[index] = text2num(values[index]) - //TODO: review? there's gotta b a better way to translate this text to numbers - return option ? rand(values[1], values[2]) : pick(values) - // i dont like the list[index] in rand, n im p sure pick(1,2,3) = rand(1,3) so - /datum/mind/proc/adjust_skillrank(skill, amt, silent = FALSE) var/datum/skill/S = GetSkillRef(skill) diff --git a/code/modules/jobs/job_types/_job.dm b/code/modules/jobs/job_types/_job.dm index 2cafb0c399..1dde0607b9 100644 --- a/code/modules/jobs/job_types/_job.dm +++ b/code/modules/jobs/job_types/_job.dm @@ -130,8 +130,6 @@ if(roundstart_experience) var/mob/living/carbon/human/experiencer = H for(var/i in roundstart_experience) - if(istext(roundstart_experience[i])) - roundstart_experience[i] = experiencer.mind.textList2nums(roundstart_experience[i]) experiencer.mind.adjust_experience(i, roundstart_experience[i], TRUE) if(spells) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm index fe8983dfe2..eb5beca737 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm @@ -11,21 +11,22 @@ traits_applied = list(RTRAIT_NOBLE, RTRAIT_NOSEGRAB, RTRAIT_HEAVYARMOR) given_skills = list( - "/datum/skill/combat/crossbows" = 3, \ - "/datum/skill/combat/polearms" = 2, \ - "/datum/skill/combat/axesmaces" = 3, \ - "/datum/skill/combat/bows" = 3, \ - "/datum/skill/combat/wrestling" = 2, \ - "/datum/skill/combat/unarmed" = 2, \ - "/datum/skill/misc/swimming" = 1, \ - "/datum/skill/misc/climbing" = 2, \ - "/datum/skill/misc/athletics" = 3, \ - "/datum/skill/combat/swords" = 4, \ - "/datum/skill/combat/knives" = 2, \ - "/datum/skill/misc/reading" = 4, \ - "/datum/skill/misc/sneaking" = 2, \ - "/datum/skill/misc/medicine" = 1, \ - "/datum/skill/misc/riding" = 3 + /datum/skill/combat/crossbows = 3, \ + /datum/skill/combat/polearms = 2, \ + /datum/skill/combat/axesmaces = 3, \ + /datum/skill/combat/bows = 3, \ + /datum/skill/combat/wrestling = 2, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/misc/swimming = 1, \ + /datum/skill/misc/climbing = 2, \ + /datum/skill/misc/athletics = 3, \ + /datum/skill/combat/swords = 4, \ + /datum/skill/combat/knives = 2, \ + /datum/skill/misc/reading = 4, \ + /datum/skill/misc/sneaking = 2, \ + /datum/skill/misc/medicine = 1, \ + /datum/skill/misc/riding = 3 + ) diff --git a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm index fcbe52feff..a7a0ce97a6 100644 --- a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm @@ -25,13 +25,14 @@ min_pq = 1 max_pq = null skills = list( - "/datum/skill/combat/axesmaces" = 3, \ - "/datum/skill/combat/unarmed" = 2, \ - "/datum/skill/craft/crafting" = 3, \ - "/datum/skill/combat/wrestling" = 3, \ - "/datum/skill/craft/blacksmithing" = "pick(,3,4,)", \ - "/datum/skill/craft/armorsmithing" = "pick(,3,4,)", \ - "/datum/skill/misc/reading" = 2, ) + /datum/skill/combat/axesmaces = 3, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/craft/crafting = 3, \ + /datum/skill/combat/wrestling = 3, \ + /datum/skill/craft/blacksmithing = list(3,4), \ + /datum/skill/craft/armorsmithing = list(3,4), \ + /datum/skill/misc/reading = 2 + ) /datum/outfit/job/roguetown/armorsmith/pre_equip(mob/living/carbon/human/H) ..() From 4f1e3d3cf90b45559f1c13fecc97ab370157e141 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Wed, 22 May 2024 22:24:08 -0400 Subject: [PATCH 09/15] fixes this not working --- code/datums/mind.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index 7182087b8b..c200453587 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -297,7 +297,7 @@ numValue = skills[path] switch(option) if("Skills") - adjust_experience(path, numValue, TRUE) // change this to what i think is a rewritten proc? + adjust_skillrank(path, numValue, TRUE) // change this to what i think is a rewritten proc? if("Stats") current.change_stat(path, numValue) From d948c4a01bd13df6fa2086ea7c5fc3924c4dfc60 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Fri, 24 May 2024 10:43:14 -0400 Subject: [PATCH 10/15] removes caps --- code/datums/mind.dm | 4 ++-- .../job_types/roguetown/adventurer/types/combat/amazon.dm | 2 +- .../job_types/roguetown/adventurer/types/combat/rogue.dm | 5 ++--- .../job_types/roguetown/adventurer/types/combat/warrior.dm | 4 ++-- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index c200453587..ae2224e4c0 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -296,9 +296,9 @@ else numValue = skills[path] switch(option) - if("Skills") + if("skills") adjust_skillrank(path, numValue, TRUE) // change this to what i think is a rewritten proc? - if("Stats") + if("stats") current.change_stat(path, numValue) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm index a3289acf7a..27ae691d65 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm @@ -37,7 +37,7 @@ ) /datum/outfit/job/roguetown/adventurer/amazon/pre_equip(mob/living/carbon/human/H) ..() - H.mind.assign_experiences(/datum/advclass/amazon::given_skills, TRUE, "Skills") + H.mind.assign_experiences(/datum/advclass/amazon::given_skills, TRUE, "skills") // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/knives, 1, TRUE) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index 1f308f2c70..4a517ce965 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -37,7 +37,6 @@ /datum/skill/misc/stealing = 5, \ /datum/skill/misc/riding = list(1,2), \ /datum/skill/craft/engineering = 1 - ) stat_changes = list( @@ -54,7 +53,7 @@ ..() shoes = /obj/item/clothing/shoes/roguetown/boots neck = /obj/item/storage/belt/rogue/pouch/coins/poor - H.mind.assign_experiences(/datum/advclass/rogue::given_skills, TRUE, "Skills") + H.mind.assign_experiences(/datum/advclass/rogue::given_skills, TRUE, "skills") // i don't like this, but since we'll know what datum goes here i don't see a big issue? // temp removal @@ -91,7 +90,7 @@ ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) - H.mind.assign_experiences(/datum/advclass/rogue::stat_changes, TRUE, "Stats") + H.mind.assign_experiences(/datum/advclass/rogue::stat_changes, TRUE, "stats") // temp removal // H.change_stat("strength", -1) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index a9433b281f..1b06d98839 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -55,7 +55,7 @@ if("Warrior") H.set_blindness(0) to_chat(H, "Warriors are well rounded fighters, experienced often in many theaters of warfare and battle they are capable of rising to any challenge that might greet them on the path.") - H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "Skills") + H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "skills") // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) @@ -71,7 +71,7 @@ // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "Stats") + H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "stats") H.change_stat("strength", 2) H.change_stat("endurance", 2) // 7 stat points total as a low-skill martial role without magic. Compared to Pally with 5 points. From 42d0f4ab06fc74d62d1c0d588af06cc044407654 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Fri, 24 May 2024 18:16:14 -0400 Subject: [PATCH 11/15] adds subclass functionality --- code/datums/mind.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/datums/mind.dm b/code/datums/mind.dm index ae2224e4c0..e50c031cc1 100644 --- a/code/datums/mind.dm +++ b/code/datums/mind.dm @@ -287,8 +287,10 @@ to_chat(current, "My [S.name] has weakened!") // just scoot in right here -/datum/mind/proc/assign_experiences(list/skills, silent, option) +/datum/mind/proc/assign_experiences(list/skills, silent, option, subclass = null) // list(skill path = num) + if(subclass) + skills = skills[subclass] for(var/path in skills) var/numValue if(islist(skills[path])) // cant assign pick when defining From 84fade467d2a0371e444d242746a2d2540b03141 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Fri, 24 May 2024 18:16:30 -0400 Subject: [PATCH 12/15] adventuerers done i take break --- .../adventurer/types/combat/amazon.dm | 29 ++--- .../adventurer/types/combat/barbarian.dm | 110 ++++++++++------- .../roguetown/adventurer/types/combat/bard.dm | 112 ++++++++++-------- .../adventurer/types/combat/cleric.dm | 104 +++++++++------- .../adventurer/types/combat/dbomb.dm | 33 ++++-- .../adventurer/types/combat/dwarfranger.dm | 32 +++-- .../roguetown/adventurer/types/combat/mage.dm | 47 ++++---- .../roguetown/adventurer/types/combat/monk.dm | 43 ++++--- .../adventurer/types/combat/ranger.dm | 111 +++++++++-------- .../adventurer/types/combat/rare/heartfelt.dm | 31 ++--- .../types/combat/rare/heartfelthand.dm | 37 +++--- .../types/combat/rare/necromancer.dm | 22 ++-- .../adventurer/types/combat/rare/sentinel.dm | 37 +++--- .../types/combat/rare/treasurehunter.dm | 30 +++-- .../types/combat/rare/witchhunter.dm | 59 +++++---- .../adventurer/types/combat/rogue.dm | 29 ----- .../adventurer/types/combat/sorceress.dm | 25 ++-- .../adventurer/types/combat/warrior.dm | 106 ++++++++--------- 18 files changed, 550 insertions(+), 447 deletions(-) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm index 27ae691d65..14690ac8be 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm @@ -35,21 +35,18 @@ /datum/skill/misc/medicine = 1 ) + stat_changes = list( + "strength" = 2, + "intelligence" = -2, + "constitution" = 3, + "perception" = 2, + "endurance" = 2, + "speed" = 1 +) + /datum/outfit/job/roguetown/adventurer/amazon/pre_equip(mob/living/carbon/human/H) ..() H.mind.assign_experiences(/datum/advclass/amazon::given_skills, TRUE, "skills") - // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/knives, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/riding, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) belt = /obj/item/storage/belt/rogue/leather neck = /obj/item/storage/belt/rogue/pouch/coins/poor beltl = /obj/item/rogueweapon/huntingknife @@ -70,12 +67,8 @@ else r_hand = /obj/item/rogueweapon/spear H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.change_stat("strength", 2) - H.change_stat("intelligence", -2) - H.change_stat("constitution", 3) - H.change_stat("perception", 2) - H.change_stat("endurance", 2) - H.change_stat("speed", 1) + H.mind.assign_experiences(/datum/advclass/amazon::stat_changes, TRUE, "stats") + if(H.wear_mask) //for stupid retards with bad eyes var/obj/I = H.wear_mask H.dropItemToGround(H.wear_mask, TRUE) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm index 1ba905f74f..0b7b48e38b 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm @@ -17,6 +17,67 @@ outfit = /datum/outfit/job/roguetown/adventurer/barbarian traits_applied = list(RTRAIT_CRITICAL_RESISTANCE, TRAIT_NOPAINSTUN, TRAIT_STEELHEARTED) + given_skills = list( + "warrior" = list( + /datum/skill/combat/wrestling = 3, + /datum/skill/combat/unarmed = 3, + /datum/skill/combat/knives = 2, + /datum/skill/craft/crafting = list(0,1), + /datum/skill/misc/athletics = list(3,4), + /datum/skill/misc/swimming = 2, + /datum/skill/misc/sneaking = 2, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/riding = 1, + /datum/skill/craft/cooking = 1, + /datum/skill/labor/butchering = 2, + /datum/skill/craft/traps = 1, + /datum/skill/labor/fishing = list(0,1), + /datum/skill/combat/bows = 1, + /datum/skill/combat/polearms = 2, + /datum/skill/combat/axesmaces = 2, + /datum/skill/combat/swords = 3 + ), + "hunter killer" = list( + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 2, + /datum/skill/combat/knives = 3, + /datum/skill/craft/crafting = list(1,2), + /datum/skill/misc/athletics = 3, + /datum/skill/misc/swimming = 3, + /datum/skill/misc/sneaking = 3, + /datum/skill/craft/tanning = 1, + /datum/skill/misc/climbing = 3, + /datum/skill/misc/riding = 2, + /datum/skill/craft/cooking = list(1,2), + /datum/skill/labor/butchering = 3, + /datum/skill/craft/traps = 2, + /datum/skill/labor/fishing = 1, + /datum/skill/misc/sewing = 1, + /datum/skill/combat/bows = 2, + /datum/skill/combat/polearms = 1, + /datum/skill/combat/axesmaces = 3, + /datum/skill/combat/swords = 1 + ) + + ) + stat_changes = list( + "warrior" = list( + "intelligence" = -2, + "strength" = 3, + "constitution" = 3, + "endurance" = 2 + ), + "hunter killer" = list( + "intelligence" = -1, + "strength" = 2, + "constitution" = 2, + "endurance" = 3 + ) + + ) + + + /datum/outfit/job/roguetown/adventurer/barbarian allowed_patrons = list(/datum/patron/divine/ravox, /datum/patron/inhumen/graggar) @@ -25,27 +86,14 @@ H.adjust_blindness(-3) var/classes = list("Warrior","Hunter Killer",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes + classchoice = lowertext(classchoice) + H.mind.assign_experiences(/datum/advclass/barbarian::given_skills, TRUE, "skills", classchoice) + H.mind.assign_experiences(/datum/advclass/barbarian::stat_changes, TRUE, "stats", classchoice) switch(classchoice) if("Warrior") H.set_blindness(0) to_chat(H, "Barbarians are great warriors of the outlands, often regarded as the strongest of their tribes -- should they have any that live. These incredible titans of strength and brutality are motivated most often by a single... all consuming instinct. SURVIVE.") - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, pick(3,4), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/butchering, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/fishing, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) + beltr = /obj/item/rogueweapon/sword/iron belt = /obj/item/storage/belt/rogue/leather neck = /obj/item/storage/belt/rogue/pouch/coins/poor @@ -61,32 +109,10 @@ armor = /obj/item/clothing/suit/roguetown/armor/leather/hide if(prob(40)) cloak = /obj/item/clothing/cloak/raincloak/furcloak/brown - H.change_stat("intelligence", -2) - H.change_stat("strength", 3) // Barbs are traditionally a mix of strength/resilience. - H.change_stat("constitution", 3) - H.change_stat("endurance", 2) if("Hunter Killer") H.set_blindness(0) to_chat(H, "Barbarians are great warriors of the outlands, often regarded as the strongest of their tribes -- should they have any that live. These incredible titans of strength and brutality are motivated most often by a single... all consuming instinct. SURVIVE.") - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/tanning, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/butchering, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/fishing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) + beltr = /obj/item/rogueweapon/stoneaxe/woodcut r_hand = /obj/item/gun/ballistic/revolver/grenadelauncher/bow l_hand = /obj/item/quiver/arrows @@ -101,10 +127,6 @@ armor = /obj/item/clothing/suit/roguetown/armor/leather else armor = /obj/item/clothing/suit/roguetown/armor/leather/hide - H.change_stat("intelligence", -1) // The hunter is smarter, more skilled -- but not as tough. - H.change_stat("strength", 2) - H.change_stat("constitution", 2) - H.change_stat("endurance", 3) /* if("ROLL THE DICE!") if(prob(49)) // Warrior diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm index a492cf61d6..5c4185725f 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm @@ -18,37 +18,79 @@ ) outfit = /datum/outfit/job/roguetown/adventurer/bard traits_applied = list(RTRAIT_MEDIUMARMOR) + given_skills = list( + "bard" = list( + /datum/skill/combat/crossbows = 3, + /datum/skill/combat/polearms = 1, + /datum/skill/combat/axesmaces = 2, + /datum/skill/combat/bows = 3, + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 3, + /datum/skill/misc/swimming = 2, + /datum/skill/misc/climbing = 3, + /datum/skill/misc/athletics = 2, + /datum/skill/combat/swords = 2, + /datum/skill/combat/knives = 3, + /datum/skill/misc/reading = 3, + /datum/skill/misc/sewing = 1, + /datum/skill/misc/sneaking = 2, + /datum/skill/misc/stealing = 2, + /datum/skill/misc/medicine = list(0,1), + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = 1, + /datum/skill/misc/music = list(4,5) + ), + "skald" = list( + /datum/skill/combat/crossbows = 2, + /datum/skill/combat/polearms = 2, + /datum/skill/combat/axesmaces = 3, + /datum/skill/combat/bows = 2, + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 3, + /datum/skill/misc/swimming = 2, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/athletics = 3, + /datum/skill/combat/swords = 3, + /datum/skill/combat/knives = 3, + /datum/skill/misc/reading = 3, + /datum/skill/misc/sewing = 1, + /datum/skill/misc/sneaking = 2, + /datum/skill/misc/stealing = 2, + /datum/skill/misc/medicine = list(0,1), + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = 1, + /datum/skill/misc/music = list(3,5) + ) + ) + stat_changes = list( + "bard" = list( + "intelligence" = 1, + "perception" = 2, + "endurance" = 1, + "speed" = 2 + ), + "skald" = list( + "constitution" = 2, + "strength" = 1, + "speed" = 1 + ) + ) + + /datum/outfit/job/roguetown/adventurer/bard/pre_equip(mob/living/carbon/human/H) ..() // The entertaining jack of all trades, uniquely handy with crossbows and swords. They're incredibly well travelled, can sneak, steal and survive on their own. H.adjust_blindness(-3) var/classes = list("Bard","Skald",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - + classchoice = lowertext(classchoice) + H.mind.assign_experiences(/datum/advclass/bard::given_skills, TRUE, "skills", classchoice) + H.mind.assign_experiences(/datum/advclass/bard::stat_changes, TRUE, "stats", classchoice) switch(classchoice) - + if("Bard") H.set_blindness(0) to_chat(H, "Bards make their fortunes in brothels, flop houses and taverns -- gaining fame for their songs and legends. If there is any truth to them, that is.") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/stealing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/music, pick(4,5), TRUE) head = /obj/item/clothing/head/roguetown/bardhat shoes = /obj/item/clothing/shoes/roguetown/boots pants = /obj/item/clothing/under/roguetown/tights/random @@ -62,32 +104,10 @@ backl = /obj/item/storage/backpack/rogue/satchel beltl = /obj/item/storage/belt/rogue/pouch/coins/poor beltr = /obj/item/rogueweapon/huntingknife/idagger/steel - H.change_stat("intelligence", 1) - H.change_stat("perception", 2) - H.change_stat("endurance", 1) - H.change_stat("speed", 2) + if("Skald") H.set_blindness(0) to_chat(H, "Skalds are wandering storytellers, and for many villages they are local historians keeping the tales of great legends and heroes alive.") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/stealing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/music, rand(3,5), TRUE) head = /obj/item/clothing/head/roguetown/bardhat shoes = /obj/item/clothing/shoes/roguetown/boots pants = /obj/item/clothing/under/roguetown/tights/random @@ -102,9 +122,7 @@ l_hand = /obj/item/rogueweapon/huntingknife/idagger/steel beltl = /obj/item/storage/belt/rogue/pouch/coins/mid l_hand = /obj/item/rogueweapon/sword/iron - H.change_stat("constitution", 2) - H.change_stat("strength", 1) - H.change_stat("speed", 1) + if(H.dna?.species) if(iself(H) || ishalfelf(H)) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm index 08c799de23..ccbe279ef3 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm @@ -17,6 +17,62 @@ vampcompat = FALSE outfit = /datum/outfit/job/roguetown/adventurer/cleric traits_applied = list(RTRAIT_HEAVYARMOR) + given_skills = list( + "life_cleric" = list( + /datum/skill/combat/crossbows = 2, + /datum/skill/combat/polearms = 1, + /datum/skill/combat/bows = 1, + /datum/skill/combat/wrestling = 3, + /datum/skill/combat/unarmed = 1, + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/athletics = 2, + /datum/skill/combat/swords = 1, + /datum/skill/combat/knives = 3, + /datum/skill/misc/reading = 3, + /datum/skill/misc/sewing = 2, + /datum/skill/misc/medicine = 4, + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = 1, + /datum/skill/combat/axesmaces = 2, + /datum/skill/magic/holy = 4 + ), + "war_cleric" = list( + /datum/skill/combat/crossbows = 3, + /datum/skill/combat/polearms = 2, + /datum/skill/combat/bows = 1, + /datum/skill/combat/wrestling = 3, + /datum/skill/combat/unarmed = 2, + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/athletics = 2, + /datum/skill/combat/swords = 2, + /datum/skill/combat/knives = 3, + /datum/skill/misc/reading = 3, + /datum/skill/misc/sewing = 2, + /datum/skill/misc/medicine = 2, + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = 1, + /datum/skill/combat/axesmaces = 3, + /datum/skill/magic/holy = 2 + ) + ) + stat_changes = list( + "life_cleric" = list( + "intelligence" = 2, + "perception" = 1, + "strength" = 1, + "constitution" = 2, + "endurance" = 2 + ), + "war_cleric" = list( + "intelligence" = 1, + "strength" = 2, + "constitution" = 2, + "endurance" = 2, + "speed" = -1 + ) + ) /datum/outfit/job/roguetown/adventurer/cleric allowed_patrons = ALL_CLERIC_PATRONS @@ -39,34 +95,14 @@ H.adjust_blindness(-3) var/classes = list("Life Cleric","War Cleric",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - + classchoice = lowertext(classchoice) + H.mind.assign_experiences(/datum/advclass/cleric::given_skills, TRUE, "skills", classchoice) + H.mind.assign_experiences(/datum/advclass/cleric::stat_changes, TRUE, "stats", classchoice) switch(classchoice) if("Life Cleric") H.set_blindness(0) to_chat(H, "You are a cleric of the life domain. Well versed in the arts of healing and magic.") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/magic/holy, 4, TRUE) - H.change_stat("intelligence", 2) - H.change_stat("perception", 1) // More intelligence and no speed penalty for Life Clerics. - H.change_stat("strength", 1) - H.change_stat("constitution", 2) - H.change_stat("endurance", 2) if(prob(50)) H.mind.AddSpell(new /obj/effect/proc_holder/spell/targeted/churn) else if(prob(50)) @@ -77,28 +113,6 @@ if("War Cleric") H.set_blindness(0) to_chat(H, "You are a cleric of the war domain. Experienced in both the granting of life and the taking of it. Unfortunately your study of warcraft has weakened your divine abilities...") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/magic/holy, 2, TRUE) - H.change_stat("intelligence", 1) - H.change_stat("strength", 2) - H.change_stat("constitution", 2) - H.change_stat("endurance", 2) // Stronger but less intelligent/quick compared to life clerics. - H.change_stat("speed", -1) armor = /obj/item/clothing/suit/roguetown/armor/plate wrists = /obj/item/clothing/wrists/roguetown/bracers/leather diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm index bea34cf5c4..f069e76afa 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dbomb.dm @@ -6,6 +6,24 @@ outfit = /datum/outfit/job/roguetown/adventurer/dbomb traits_applied = list(RTRAIT_HEAVYARMOR) + stat_changes = list( + "strength" = 1, + "endurance" = 1 + ) + + given_skills = list( + /datum/skill/combat/axesmaces = 3, + /datum/skill/combat/unarmed = 2, + /datum/skill/combat/wrestling = 2, + /datum/skill/craft/crafting = 4, + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = 1, + /datum/skill/misc/sewing = 1, + /datum/skill/misc/athletics = 1, + /datum/skill/misc/medicine = 1 + ) + + /datum/outfit/job/roguetown/adventurer/dbomb/pre_equip(mob/living/carbon/human/H) ..() head = /obj/item/clothing/head/roguetown/armingcap/dwarf @@ -26,14 +44,7 @@ beltr = /obj/item/rogueweapon/hammer if(prob(50)) shoes = /obj/item/clothing/shoes/roguetown/boots/leather - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - H.change_stat("strength", 1) - H.change_stat("endurance", 1) + + H.mind.assign_experiences(/datum/advclass/dbomb::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/dbomb::stat_changes, TRUE, "stats") + diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dwarfranger.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dwarfranger.dm index e2d9fc26c2..4d5c0a65c9 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dwarfranger.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/dwarfranger.dm @@ -8,6 +8,24 @@ outfit = /datum/outfit/job/roguetown/adventurer/dranger traits_applied = list(RTRAIT_MEDIUMARMOR) + given_skills = list( + /datum/skill/combat/axesmaces = 2, + /datum/skill/combat/unarmed = 2, + /datum/skill/craft/crafting = 2, + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = 3, + /datum/skill/combat/crossbows = 3, + /datum/skill/craft/tanning = 2, + /datum/skill/misc/riding = 3, + /datum/skill/misc/sewing = 3, + /datum/skill/misc/medicine = 2 + ) + + stat_changes = list( + "perception" = 3 + ) + + /datum/outfit/job/roguetown/adventurer/dranger/pre_equip(mob/living/carbon/human/H) ..() head = /obj/item/clothing/head/roguetown/roguehood @@ -28,14 +46,6 @@ if(prob(23)) shoes = /obj/item/clothing/shoes/roguetown/boots/leather cloak = /obj/item/clothing/cloak/raincloak/brown - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/tanning, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 2, TRUE) - H.change_stat("perception", 3) + H.mind.assign_experiences(/datum/advclass/dranger::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/dranger::stat_changes, TRUE, "stats") + diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/mage.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/mage.dm index eefac283cd..286634031c 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/mage.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/mage.dm @@ -13,6 +13,29 @@ "Aasimar" ) outfit = /datum/outfit/job/roguetown/adventurer/mage + given_skills = list( + /datum/skill/combat/polearms = 1, + /datum/skill/combat/bows = 1, + /datum/skill/combat/wrestling = list(0, 1, 2), + /datum/skill/combat/unarmed = list(0, 1, 2), + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = list(0, 1), + /datum/skill/misc/athletics = 1, + /datum/skill/combat/swords = list(0, 1), + /datum/skill/combat/knives = list(0, 1, 2), + /datum/skill/craft/crafting = list(0, 1), + /datum/skill/misc/medicine = list(0, 1), + /datum/skill/misc/riding = 1, + /datum/skill/misc/reading = 4, + /datum/skill/magic/arcane = 3 + ) + + stat_changes = list( + "strength" = -1, + "intelligence" = 3, + "constitution" = 1, + "endurance" = -1 + ) /datum/outfit/job/roguetown/adventurer/mage allowed_patrons = list(/datum/patron/divine/noc) @@ -31,30 +54,14 @@ r_hand = /obj/item/rogueweapon/woodstaff if(H.mind) to_chat(H, "Magic is often times refered to as an art. At times it is treated as a primordial beast, chaos incarnate. To more learned men it is a precise science, to be studied and examined. In the end, magic is all three of the above. It is Art, Chaos, and Science: a blessing, a curse, and progress. It all depends on who calls upon it, and for what purpose.") - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, pick(0,1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, pick(0,1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, pick(0,1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/magic/arcane, 3, TRUE) + H.mind.assign_experiences(/datum/advclass/mage::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/mage::stat_changes, TRUE, "stats") if(H.age == AGE_OLD) head = /obj/item/clothing/head/roguetown/wizhat/gen armor = /obj/item/clothing/suit/roguetown/shirt/robe - H.change_stat("intelligence", 4) + H.change_stat("intelligence", 1) H.mind.adjust_skillrank(/datum/skill/magic/arcane, 2, TRUE) - H.change_stat("strength", -2) - H.change_stat("strength", -1) - H.change_stat("intelligence", 3) - H.change_stat("constitution", 1) - H.change_stat("endurance", -1) + H.change_stat("strength", -1) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fireball) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/lightningbolt) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/monk.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/monk.dm index 5b28633e23..ea374c63bb 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/monk.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/monk.dm @@ -19,6 +19,30 @@ ispilgrim = FALSE vampcompat = FALSE + given_skills = list( + /datum/skill/combat/swords = list(0, 1), + /datum/skill/misc/athletics = 3, + /datum/skill/combat/bows = list(0, 1), + /datum/skill/combat/wrestling = 4, + /datum/skill/combat/unarmed = 5, + /datum/skill/combat/knives = 2, + /datum/skill/combat/polearms = list(1, 2), + /datum/skill/misc/swimming = 2, + /datum/skill/misc/climbing = 3, + /datum/skill/misc/reading = 2, + /datum/skill/misc/sneaking = list(1, 2), + /datum/skill/craft/cooking = 1, + /datum/skill/misc/medicine = 2 + ) + + stat_changes = list( + "strength" = 3, + "constitution" = 1, + "speed" = 2, + "perception" = -1 + ) + + /datum/outfit/job/roguetown/adventurer/monk/pre_equip(mob/living/carbon/human/H) ..() head = /obj/item/clothing/head/roguetown/roguehood @@ -32,20 +56,5 @@ r_hand = /obj/item/rogueweapon/woodstaff if(H.mind) to_chat(src, "Monks are pilgrims of powerful belief who empart the teachings of their Temple or God by their interactions with the people of the world. A good monk would seek to help travellers on the road, feed the hungry and teach the weak to become strong. A bad one however...") - H.mind.adjust_skillrank(/datum/skill/combat/swords, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, pick(0,1), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 5, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 2, TRUE) - H.change_stat("strength", 3) - H.change_stat("constitution", 1) - H.change_stat("speed", 2) - H.change_stat("perception", -1) + H.mind.assign_experiences(/datum/advclass/monk::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/monk::stat_changes, TRUE, "stats") diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm index 09aee159c3..e125ebd246 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm @@ -14,13 +14,75 @@ ) outfit = /datum/outfit/job/roguetown/adventurer/ranger traits_applied = list(RTRAIT_MEDIUMARMOR) + + given_skills = list( + "ranger" = list( + /datum/skill/combat/swords = 2, + /datum/skill/combat/polearms = 1, + /datum/skill/combat/axesmaces = 2, + /datum/skill/combat/crossbows = 3, + /datum/skill/misc/athletics = 3, + /datum/skill/combat/bows = list(4, 5, 5, 6), + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 2, + /datum/skill/combat/knives = 2, + /datum/skill/misc/swimming = 4, + /datum/skill/misc/climbing = 4, + /datum/skill/craft/crafting = 2, + /datum/skill/misc/reading = 1, + /datum/skill/misc/sneaking = 3, + /datum/skill/craft/tanning = 1, + /datum/skill/labor/fishing = 1, + /datum/skill/misc/sewing = 1, + /datum/skill/labor/butchering = 1, + /datum/skill/craft/traps = 1, + /datum/skill/misc/medicine = 2, + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = list(1, 2) + ), + "gloom stalker" = list( + /datum/skill/combat/swords = 3, + /datum/skill/combat/polearms = 2, + /datum/skill/combat/axesmaces = 3, + /datum/skill/combat/crossbows = 2, + /datum/skill/misc/athletics = 3, + /datum/skill/combat/bows = 4, + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 2, + /datum/skill/combat/knives = 3, + /datum/skill/misc/swimming = 3, + /datum/skill/misc/climbing = 4, + /datum/skill/craft/crafting = 1, + /datum/skill/misc/reading = 2, + /datum/skill/misc/sneaking = 4, + /datum/skill/craft/traps = 1, + /datum/skill/misc/medicine = 1, + /datum/skill/craft/cooking = 1, + /datum/skill/misc/riding = list(1, 2) + ) + ) + + stat_changes = list( + "ranger" = list( + "perception" = 4, + "endurance" = 2, + "speed" = 2 + ), + "gloom stalker" = list( + "perception" = 2, + "endurance" = 1, + "speed" = 3 + ) + ) /datum/outfit/job/roguetown/adventurer/ranger/pre_equip(mob/living/carbon/human/H) ..() H.adjust_blindness(-3) var/classes = list("Ranger","Gloom Stalker",) // Ranger Knight is the unique subclass. Gives you steel breastplate and a sword. var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - + classchoice = lowertext(classchoice) + H.mind.assign_experiences(/datum/advclass/ranger::given_skills, TRUE, "skills", classchoice) + H.mind.assign_experiences(/datum/advclass/ranger::stat_changes, TRUE, "stats", classchoice) switch(classchoice) if("Ranger") @@ -40,31 +102,7 @@ beltr = /obj/item/flashlight/flare/torch/lantern backpack_contents = list(/obj/item/bait = 1, /obj/item/rogueweapon/huntingknife = 1) beltl = /obj/item/quiver/arrows - H.mind.adjust_skillrank(/datum/skill/combat/swords, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, pick(4,5,5,6), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/tanning, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/fishing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/butchering, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, rand(1,2), TRUE) - H.change_stat("perception", 4) - H.change_stat("endurance", 2) - H.change_stat("speed", 2) + if("Gloom Stalker") H.set_blindness(0) to_chat(H, "Rangers are masters of nature, often hired as pathfinders, bodyguards and mercenaries in areas of wilderness untraversable to common soldiery.") @@ -81,27 +119,6 @@ beltr = /obj/item/flashlight/flare/torch/lantern backpack_contents = list(/obj/item/rogueweapon/huntingknife/idagger/steel/special = 1) beltl = /obj/item/quiver/arrows - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, rand(1,2), TRUE) - H.change_stat("perception", 2) - H.change_stat("endurance", 1) - H.change_stat("speed", 3) if(H.gender == MALE) pants = /obj/item/clothing/under/roguetown/trou/leather diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm index eb5beca737..2799853d09 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelt.dm @@ -29,6 +29,14 @@ ) + stat_changes = list( + "strength" = 2, \ + "intelligence" = 2, \ + "endurance" = 2, \ + "speed" = 1, \ + "perception" = 2, \ + "fortune" = 5 + ) /datum/outfit/job/roguetown/adventurer/heartfeltlord/pre_equip(mob/living/carbon/human/H) ..() @@ -45,27 +53,8 @@ backl = /obj/item/storage/backpack/rogue/satchel id = /obj/item/scomstone if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 3, TRUE) - H.change_stat("strength", 2) - H.change_stat("intelligence", 2) - H.change_stat("endurance", 2) - H.change_stat("speed", 1) - H.change_stat("perception", 2) - H.change_stat("fortune", 5) + H.mind.assign_experiences(/datum/advclass/heartfeltlord::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/heartfeltlord::stat_changes, TRUE, "skills") ADD_TRAIT(H, RTRAIT_NOBLE, TRAIT_GENERIC) ADD_TRAIT(H, RTRAIT_NOSEGRAB, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelthand.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelthand.dm index c3e4bf75b7..55c37236dd 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelthand.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/heartfelthand.dm @@ -9,6 +9,26 @@ pickprob = 100 traits_applied = list(RTRAIT_HEAVYARMOR, RTRAIT_SEEPRICES) + given_skills = list( + /datum/skill/combat/axesmaces = 2, \ + /datum/skill/misc/medicine = 4, \ + /datum/skill/craft/cooking = 4, \ + /datum/skill/combat/wrestling = 3, \ + /datum/skill/combat/unarmed = 3, \ + /datum/skill/combat/swords = 3, \ + /datum/skill/misc/swimming = 3, \ + /datum/skill/misc/climbing = 3, \ + /datum/skill/misc/athletics = 3, \ + /datum/skill/misc/reading = 4, \ + /datum/skill/misc/riding = 2 + ) + + stat_changes = list( + "strength" = 2, \ + "perception" = 3, \ + "intelligence" = 3 + ) + /datum/outfit/job/roguetown/adventurer/heartfelthand/pre_equip(mob/living/carbon/human/H) ..() shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt @@ -24,17 +44,6 @@ mask = /obj/item/clothing/mask/rogue/spectacles/golden id = /obj/item/scomstone if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/cooking, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 2, TRUE) - H.change_stat("strength", 2) - H.change_stat("perception", 3) - H.change_stat("intelligence", 3) + H.mind.assign_experiences(/datum/advclass/heartfelthand::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/heartfelthand::stat_changes, TRUE, "stats") + diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/necromancer.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/necromancer.dm index dcc72ce253..9584aafd8c 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/necromancer.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/necromancer.dm @@ -13,6 +13,18 @@ outfit = /datum/outfit/job/roguetown/adventurer/necromancer pickprob = 30 traits_applied = list(TRAIT_ZOMBIE_IMMUNE) + given_skills = list( + /datum/skill/misc/reading = 4, \ + /datum/skill/magic/arcane = 5 + ) + stat_changes = list( + "strength" = -1, \ + "intelligence" = 3, \ + "constitution" = -2, \ + "endurance" = -1, \ + "speed" = -1 + ) + /datum/outfit/job/roguetown/adventurer/necromancer allowed_patrons = list(/datum/patron/inhumen/zizo) @@ -29,13 +41,9 @@ beltr = /obj/item/reagent_containers/glass/bottle/rogue/manapot beltl = /obj/item/rogueweapon/huntingknife r_hand = /obj/item/rogueweapon/woodstaff - H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/magic/arcane, 5, TRUE) - H.change_stat("strength", -1) - H.change_stat("intelligence", 3) - H.change_stat("constitution", -2) - H.change_stat("endurance", -1) - H.change_stat("speed", -1) + H.mind.assign_experiences(/datum/advclass/necromancer::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/necromancer::stat_changes, TRUE, "stats") + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/bonechill) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/raise_undead) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/sickness) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/sentinel.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/sentinel.dm index 26772ddef5..cfb286d457 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/sentinel.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/sentinel.dm @@ -12,22 +12,30 @@ maxchosen = 5 pickprob = 50 traits_applied = list(RTRAIT_MEDIUMARMOR) + given_skills = list( + /datum/skill/combat/knives = 3, \ + /datum/skill/combat/swords = 3, \ + /datum/skill/combat/crossbows = 3, \ + /datum/skill/combat/bows = 5, \ + /datum/skill/craft/tanning = 3, \ + /datum/skill/combat/unarmed = 1, \ + /datum/skill/craft/crafting = 1, \ + /datum/skill/misc/swimming = 2, \ + /datum/skill/misc/climbing = 2, \ + /datum/skill/misc/riding = 3, \ + /datum/skill/misc/sewing = 3, \ + /datum/skill/misc/medicine = 4 + ) + stat_changes = list( + "perception" = 5, \ + "endurance" = 2 +) + /datum/outfit/job/roguetown/adventurer/sentinal/pre_equip(mob/living/carbon/human/H) ..() shoes = /obj/item/clothing/shoes/roguetown/boots/leather - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 5, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/tanning, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 4, TRUE) + if(H.gender == MALE) pants = /obj/item/clothing/under/roguetown/trou/leather shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt @@ -44,6 +52,7 @@ beltr = /obj/item/rogueweapon/sword/sabre/elf backpack_contents = list(/obj/item/bait = 1, /obj/item/rogueweapon/huntingknife/elvish = 1, /obj/item/flashlight/flare/torch/lantern = 1) beltl = /obj/item/quiver/arrows - H.change_stat("perception", 5) - H.change_stat("endurance", 2) + H.mind.assign_experiences(/datum/advclass/sentinel::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/sentinel::stat_changes, TRUE, "stats") + H.ambushable = FALSE diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/treasurehunter.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/treasurehunter.dm index 1d03000cf7..683d8a689a 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/treasurehunter.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/treasurehunter.dm @@ -18,6 +18,22 @@ pickprob = 11 traits_applied = list(RTRAIT_NOSTINK) + given_skills = list( + /datum/skill/combat/axesmaces = 1, + /datum/skill/combat/wrestling = 1, + /datum/skill/combat/knives = 2, + /datum/skill/combat/unarmed = 1, + /datum/skill/craft/crafting = 1, + /datum/skill/misc/reading = 2, + /datum/skill/misc/swimming = 2, + /datum/skill/misc/climbing = 4 +) + stat_changes = list( + "strength" = 1, + "perception" = 1, + "intelligence" = -2 +) + /datum/outfit/job/roguetown/adventurer/gravedigger/pre_equip(mob/living/carbon/human/H) ..() pants = /obj/item/clothing/under/roguetown/tights/black @@ -35,14 +51,6 @@ backr = /obj/item/rogueweapon/shovel head = /obj/item/clothing/head/roguetown/puritan if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 4, TRUE) - H.change_stat("strength", 1) - H.change_stat("perception", 1) - H.change_stat("intelligence", -2) + H.mind.assign_experiences(/datum/advclass/gravedigger::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/gravedigger::stat_changes, TRUE, "stats") + diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/witchhunter.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/witchhunter.dm index 7b3d13b8b0..e7c776ddff 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/witchhunter.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rare/witchhunter.dm @@ -11,6 +11,38 @@ pickprob = 11 traits_applied = list(RTRAIT_MEDIUMARMOR) + given_skills = list( + /datum/skill/combat/swords = list(4,5), + /datum/skill/combat/axesmaces = 3, + /datum/skill/combat/crossbows = 3, + /datum/skill/combat/bows = 2, + /datum/skill/misc/athletics = 3, + /datum/skill/combat/wrestling = 3, + /datum/skill/combat/unarmed = 3, + /datum/skill/combat/knives = 3, + /datum/skill/combat/polearms = 3, + /datum/skill/misc/swimming = 2, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/reading = 2, + /datum/skill/misc/sewing = 2, + /datum/skill/labor/butchering = 2, + /datum/skill/craft/traps = 2, + /datum/skill/misc/medicine = 2, + /datum/skill/misc/sneaking = 2, + /datum/skill/combat/whipsflails = list(4,5) +) + + stat_changes = list( + "intelligence" = 1, + "strength" = 1, + "endurance" = 1, + "speed" = 1, + "constitution" = 1, + "perception" = 2 +) + + + /datum/outfit/job/roguetown/adventurer/puritan allowed_patrons = list(/datum/patron/old_god) @@ -30,30 +62,9 @@ backpack_contents = list(/obj/item/rogueweapon/huntingknife = 1) if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/swords, rand(4,5), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/polearms, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sewing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/labor/butchering, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/traps, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/whipsflails, rand(4,5), TRUE) - H.change_stat("intelligence", 1) - H.change_stat("strength", 1) - H.change_stat("endurance", 1) - H.change_stat("speed", 1) - H.change_stat("constitution", 1) - H.change_stat("perception", 2) + H.mind.assign_experiences(/datum/advclass/puritan::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/puritan::stat_changes, TRUE, "stats") + H.verbs |= /mob/living/carbon/human/proc/torture_victim ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm index 4a517ce965..53a656b57d 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/rogue.dm @@ -54,28 +54,6 @@ shoes = /obj/item/clothing/shoes/roguetown/boots neck = /obj/item/storage/belt/rogue/pouch/coins/poor H.mind.assign_experiences(/datum/advclass/rogue::given_skills, TRUE, "skills") - // i don't like this, but since we'll know what datum goes here i don't see a big issue? - - // temp removal - // H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, pick(2,3,3), TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/bows, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/knives, 4, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(5,6), TRUE) - // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/reading, pick(0,1,1), TRUE) - // H.mind.adjust_skillrank(/datum/skill/craft/traps, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/medicine, pick(0,1), TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 5, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/stealing, 5, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(1,2), TRUE) - // H.mind.adjust_skillrank(/datum/skill/craft/engineering, 1, TRUE) pants = /obj/item/clothing/under/roguetown/trou/leather shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt gloves = /obj/item/clothing/gloves/roguetown/leather @@ -89,11 +67,4 @@ beltl = /obj/item/rogueweapon/huntingknife/idagger/steel ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC) ADD_TRAIT(H, TRAIT_STEELHEARTED, TRAIT_GENERIC) - H.mind.assign_experiences(/datum/advclass/rogue::stat_changes, TRUE, "stats") - - // temp removal - // H.change_stat("strength", -1) - // H.change_stat("perception", 2) - // H.change_stat("speed", pick(3,4)) - // H.change_stat("intelligence", 2) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/sorceress.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/sorceress.dm index 76553fed15..9da91d561e 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/sorceress.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/sorceress.dm @@ -15,6 +15,20 @@ outfit = /datum/outfit/job/roguetown/adventurer/sorceress allowed_ages = list(AGE_MIDDLEAGED, AGE_OLD) + given_skills = list( + /datum/skill/misc/reading = 4, + /datum/skill/magic/arcane = list(1, 2), + /datum/skill/misc/medicine = 1 + ) + + stat_changes = list( + "strength" = -1, + "intelligence" = 3, + "constitution" = -1, + "endurance" = -1, + "speed" = -2 + ) + /datum/outfit/job/roguetown/adventurer/sorceress/pre_equip(mob/living/carbon/human/H) ..() shoes = /obj/item/clothing/shoes/roguetown/simpleshoes @@ -27,16 +41,11 @@ neck = /obj/item/storage/belt/rogue/pouch/coins/poor r_hand = /obj/item/rogueweapon/woodstaff if(H.mind) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/magic/arcane, pick(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) + H.mind.assign_experiences(/datum/advclass/sorceress::given_skills, TRUE, "skills") + H.mind.assign_experiences(/datum/advclass/sorceress::stat_changes, TRUE, "stats") if(H.age == AGE_OLD) H.mind.adjust_skillrank(/datum/skill/magic/arcane, pick(1,2), TRUE) - H.change_stat("strength", -1) - H.change_stat("intelligence", 3) - H.change_stat("constitution", -1) - H.change_stat("endurance", -1) - H.change_stat("speed", -2) + H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fireball) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/lightningbolt) H.mind.AddSpell(new /obj/effect/proc_holder/spell/invoked/projectile/fetch) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index 1b06d98839..64fbc1c35d 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -20,28 +20,52 @@ given_skills = list( - /datum/skill/misc/sneaking = list(1,1,2), \ - /datum/skill/combat/crossbows = list(1,2), \ - /datum/skill/combat/polearms = 2, \ - /datum/skill/combat/axesmaces = 2, \ - /datum/skill/combat/bows = list(1,2), \ - /datum/skill/combat/wrestling = 2, \ - /datum/skill/combat/unarmed = 2, \ - /datum/skill/misc/athletics = 4, \ - /datum/skill/combat/swords = 3, \ - /datum/skill/misc/swimming = 1, \ - /datum/skill/misc/climbing = 2, \ - /datum/skill/misc/riding = list(2,3), \ - /datum/skill/misc/medicine = 1, \ - /datum/skill/combat/knives = list(1,3) - + "warrior" =list( + /datum/skill/misc/sneaking = list(1,1,2), \ + /datum/skill/combat/crossbows = list(1,2), \ + /datum/skill/combat/polearms = 2, \ + /datum/skill/combat/axesmaces = 2, \ + /datum/skill/combat/bows = list(1,2), \ + /datum/skill/combat/wrestling = 2, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/misc/athletics = 4, \ + /datum/skill/combat/swords = 3, \ + /datum/skill/misc/swimming = 1, \ + /datum/skill/misc/climbing = 2, \ + /datum/skill/misc/riding = list(2,3), \ + /datum/skill/misc/medicine = 1, \ + /datum/skill/combat/knives = list(1,3) + ), + "monster hunter" = list( + /datum/skill/combat/crossbows = list(1, 2), + /datum/skill/combat/bows = list(1, 2), + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 2, + /datum/skill/misc/athletics = 4, + /datum/skill/combat/knives = list(1, 2, 3), + /datum/skill/misc/sneaking = list(1, 1, 2), + /datum/skill/misc/swimming = 1, + /datum/skill/misc/climbing = 2, + /datum/skill/misc/riding = list(2, 3), + /datum/skill/misc/medicine = 1 + ) ) - // tempted to just change rand(1,2) to pick 1,2,3 + stat_changes = list( - "strength" = 2, - "endurance" = 2, - "constitution" = 2, - "speed" = 1 + "warrior" =list( + "strength" = 2, + "endurance" = 2, + "constitution" = 2, + "speed" = 1 + ), + "monster hunter"= list( + "strength" = 2, + "endurance" = 1, + "constitution" = 2, + "intelligence" = 1, + "speed" = 1 + ) + ) /datum/outfit/job/roguetown/adventurer/sfighter/pre_equip(mob/living/carbon/human/H) @@ -49,34 +73,14 @@ H.adjust_blindness(-3) var/classes = list("Warrior","Monster Hunter",) // To Do - knight errant unique archetype(5 percent chance) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - + classchoice = lowertext(classchoice) + H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "skills", classchoice) + H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "stats", classchoice) switch(classchoice) if("Warrior") H.set_blindness(0) to_chat(H, "Warriors are well rounded fighters, experienced often in many theaters of warfare and battle they are capable of rising to any challenge that might greet them on the path.") - H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "skills") - // H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/polearms, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/bows, rand(1,2), TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/swords, 3, TRUE) - // H.mind.adjust_skillrank(/datum/skill/combat/knives, rand(1,3), TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,1,2), TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) - // H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - - H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "stats") - - H.change_stat("strength", 2) - H.change_stat("endurance", 2) // 7 stat points total as a low-skill martial role without magic. Compared to Pally with 5 points. - H.change_stat("constitution", 2) - H.change_stat("speed", 1) shoes = /obj/item/clothing/shoes/roguetown/boots gloves = /obj/item/clothing/gloves/roguetown/leather belt = /obj/item/storage/belt/rogue/leather @@ -106,22 +110,6 @@ if("Monster Hunter") H.set_blindness(0) to_chat(H, "Monsters Hunters are typically contracted champions of the common folk dedicated to the slaying of both lesser vermin and greater beasts of the wilds.") - H.mind.adjust_skillrank(/datum/skill/combat/crossbows, rand(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/bows, rand(1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/athletics, 4, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/knives, rand(1,3), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/sneaking, pick(1,1,2), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/swimming, 1, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/climbing, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/riding, pick(2,3), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE) - H.change_stat("strength", 2) - H.change_stat("endurance", 1) // Weaker endurance compared to a traditional warrior/soldier. Smarter due to study of rare magical beasts. - H.change_stat("constitution", 2) - H.change_stat("intelligence", 1) - H.change_stat("speed", 1) shoes = /obj/item/clothing/shoes/roguetown/boots gloves = /obj/item/clothing/gloves/roguetown/leather belt = /obj/item/storage/belt/rogue/leather From d27eca129d0f4250b1bee123dd40ee8236758d93 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Sat, 25 May 2024 17:40:01 -0400 Subject: [PATCH 13/15] weaponsmith convert --- .../job_types/roguetown/serfs/blacksmith.dm | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm index a7a0ce97a6..eb9fbda49f 100644 --- a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm +++ b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm @@ -104,19 +104,28 @@ min_pq = 1 max_pq = null + skills = list( + /datum/skill/combat/axesmaces = 3, \ + /datum/skill/combat/unarmed = 2, \ + /datum/skill/craft/crafting = 3, \ + /datum/skill/combat/wrestling = 3, \ + /datum/skill/craft/blacksmithing = list(3,4), \ + /datum/skill/craft/armorsmithing = list(3,4), \ + /datum/skill/misc/reading = 2 + ) /datum/outfit/job/roguetown/weaponsmith/pre_equip(mob/living/carbon/human/H) ..() head = /obj/item/clothing/head/roguetown/hatfur if(prob(50)) head = /obj/item/clothing/head/roguetown/hatblu if(H.mind) - H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/crafting, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(3,4), TRUE) - H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, pick(3,4), TRUE) - H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 2, TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/crafting, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(3,4), TRUE) + // H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, pick(3,4), TRUE) + // H.mind.adjust_skillrank(/datum/skill/misc/reading, 2, TRUE) if(H.age == AGE_OLD) H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, pick(1,2), TRUE) H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, pick(1,2), TRUE) From ab6d9386537d4dba83fb4d149bde73814d99bc13 Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Mon, 27 May 2024 04:28:55 -0400 Subject: [PATCH 14/15] fixes some goofy mistakes i made n reverts a change_stat --- .../roguetown/adventurer/types/combat/barbarian.dm | 5 ++--- .../job_types/roguetown/adventurer/types/combat/bard.dm | 5 ++--- .../roguetown/adventurer/types/combat/cleric.dm | 9 ++++----- .../roguetown/adventurer/types/combat/ranger.dm | 5 ++--- .../roguetown/adventurer/types/combat/warrior.dm | 7 +++---- code/modules/mob/living/stats.dm | 2 +- 6 files changed, 14 insertions(+), 19 deletions(-) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm index 0b7b48e38b..ca3addabc5 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/barbarian.dm @@ -86,9 +86,8 @@ H.adjust_blindness(-3) var/classes = list("Warrior","Hunter Killer",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - classchoice = lowertext(classchoice) - H.mind.assign_experiences(/datum/advclass/barbarian::given_skills, TRUE, "skills", classchoice) - H.mind.assign_experiences(/datum/advclass/barbarian::stat_changes, TRUE, "stats", classchoice) + H.mind.assign_experiences(/datum/advclass/barbarian::given_skills, TRUE, "skills", lowertext(classchoice)) + H.mind.assign_experiences(/datum/advclass/barbarian::stat_changes, TRUE, "stats", lowertext(classchoice)) switch(classchoice) if("Warrior") H.set_blindness(0) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm index 5c4185725f..50c71d5731 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm @@ -83,9 +83,8 @@ H.adjust_blindness(-3) var/classes = list("Bard","Skald",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - classchoice = lowertext(classchoice) - H.mind.assign_experiences(/datum/advclass/bard::given_skills, TRUE, "skills", classchoice) - H.mind.assign_experiences(/datum/advclass/bard::stat_changes, TRUE, "stats", classchoice) + H.mind.assign_experiences(/datum/advclass/bard::given_skills, TRUE, "skills", lowertext(classchoice)) + H.mind.assign_experiences(/datum/advclass/bard::stat_changes, TRUE, "stats", lowertext(classchoice)) switch(classchoice) if("Bard") diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm index e2f3f8c77f..3a9f5a15a6 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm @@ -58,14 +58,14 @@ ) ) stat_changes = list( - "life_cleric" = list( + "life cleric" = list( "intelligence" = 2, "perception" = 1, "strength" = 1, "constitution" = 2, "endurance" = 2 ), - "war_cleric" = list( + "war cleric" = list( "intelligence" = 1, "strength" = 2, "constitution" = 2, @@ -95,9 +95,8 @@ H.adjust_blindness(-3) var/classes = list("Life Cleric","War Cleric",) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - classchoice = lowertext(classchoice) - H.mind.assign_experiences(/datum/advclass/cleric::given_skills, TRUE, "skills", classchoice) - H.mind.assign_experiences(/datum/advclass/cleric::stat_changes, TRUE, "stats", classchoice) + H.mind.assign_experiences(/datum/advclass/cleric::given_skills, TRUE, "skills", lowertext(classchoice)) + H.mind.assign_experiences(/datum/advclass/cleric::stat_changes, TRUE, "stats", lowertext(classchoice)) switch(classchoice) if("Life Cleric") diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm index 568ecdf1af..dfec11e8e2 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/ranger.dm @@ -80,9 +80,8 @@ H.adjust_blindness(-3) var/classes = list("Ranger","Gloom Stalker",) // Ranger Knight is the unique subclass. Gives you steel breastplate and a sword. var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - classchoice = lowertext(classchoice) - H.mind.assign_experiences(/datum/advclass/ranger::given_skills, TRUE, "skills", classchoice) - H.mind.assign_experiences(/datum/advclass/ranger::stat_changes, TRUE, "stats", classchoice) + H.mind.assign_experiences(/datum/advclass/ranger::given_skills, TRUE, "skills", lowertext(classchoice)) + H.mind.assign_experiences(/datum/advclass/ranger::stat_changes, TRUE, "stats", lowertext(classchoice)) switch(classchoice) if("Ranger") diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm index 64fbc1c35d..d5488b6b3f 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/warrior.dm @@ -71,11 +71,10 @@ /datum/outfit/job/roguetown/adventurer/sfighter/pre_equip(mob/living/carbon/human/H) ..() H.adjust_blindness(-3) - var/classes = list("Warrior","Monster Hunter",) // To Do - knight errant unique archetype(5 percent chance) + var/classes = list("Warrior","Monster Hunter") // To Do - knight errant unique archetype(5 percent chance) var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes - classchoice = lowertext(classchoice) - H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "skills", classchoice) - H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "stats", classchoice) + H.mind.assign_experiences(/datum/advclass/sfighter::given_skills, TRUE, "skills", lowertext(classchoice)) + H.mind.assign_experiences(/datum/advclass/sfighter::stat_changes, TRUE, "stats", lowertext(classchoice)) switch(classchoice) if("Warrior") diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm index 8796d7f76e..e120a0fd0c 100644 --- a/code/modules/mob/living/stats.dm +++ b/code/modules/mob/living/stats.dm @@ -105,7 +105,7 @@ return if(amt == 0 && index) if(statindex[index]) - change_stat(stat, -1*statindex[index]["amt"]) + change_stat(statindex[index]["stat"], -1*statindex[index]["amt"]) // reverted back to what was before stat[index] = null // leaving this here until i figure out what it actually does return return From 8c862cdb36d725d4695f7a7484565e0ffe40a53e Mon Sep 17 00:00:00 2001 From: ShadowLeaderJordanzo Date: Mon, 27 May 2024 04:31:57 -0400 Subject: [PATCH 15/15] me when 4am goof --- .../job_types/roguetown/adventurer/types/combat/cleric.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm index 3a9f5a15a6..d24c90e149 100644 --- a/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm +++ b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/cleric.dm @@ -18,7 +18,7 @@ outfit = /datum/outfit/job/roguetown/adventurer/cleric traits_applied = list(RTRAIT_HEAVYARMOR) given_skills = list( - "life_cleric" = list( + "life cleric" = list( /datum/skill/combat/crossbows = 2, /datum/skill/combat/polearms = 1, /datum/skill/combat/bows = 1, @@ -37,7 +37,7 @@ /datum/skill/combat/axesmaces = 2, /datum/skill/magic/holy = 4 ), - "war_cleric" = list( + "war cleric" = list( /datum/skill/combat/crossbows = 3, /datum/skill/combat/polearms = 2, /datum/skill/combat/bows = 1,