diff --git a/code/datums/mind.dm b/code/datums/mind.dm
index 0d6a87daec..a9781afab1 100644
--- a/code/datums/mind.dm
+++ b/code/datums/mind.dm
@@ -296,6 +296,25 @@
else
to_chat(current, "My [S.name] has weakened!")
+// just scoot in right here
+/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
+ numValue = pick(skills[path])
+ else
+ numValue = skills[path]
+ switch(option)
+ if("skills")
+ adjust_skillrank(path, numValue, TRUE) // change this to what i think is a rewritten proc?
+ if("stats")
+ current.change_stat(path, numValue)
+
+
+
/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/amazon.dm b/code/modules/jobs/job_types/roguetown/adventurer/types/combat/amazon.dm
index dc53b5d913..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
@@ -19,20 +19,34 @@
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
+
+ )
+ 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.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")
belt = /obj/item/storage/belt/rogue/leather
neck = /obj/item/storage/belt/rogue/pouch/coins/poor
beltl = /obj/item/rogueweapon/huntingknife
@@ -53,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..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
@@ -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,13 @@
H.adjust_blindness(-3)
var/classes = list("Warrior","Hunter Killer",)
var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes
+ 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)
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 +108,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 +126,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 f7e85d6727..0b566b5056 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
@@ -17,38 +17,80 @@
"Aasimar"
)
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
+ )
+ )
+
traits_applied = list(RTRAIT_MEDIUMARMOR, RTRAIT_DODGEEXPERT)
+
/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
-
+ 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")
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 c7c49eba4c..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
@@ -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,35 +95,13 @@
H.adjust_blindness(-3)
var/classes = list("Life Cleric","War Cleric",)
var/classchoice = input("Choose your archetypes", "Available archetypes") as anything in classes
-
+ 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")
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/weaving, 1, 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))
@@ -78,28 +112,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 25669399b5..07e3766d4d 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
@@ -20,6 +20,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
@@ -33,21 +57,8 @@
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")
+
ADD_TRAIT(H, RTRAIT_DODGEEXPERT, TRAIT_GENERIC)
+
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 6ff2e9887e..db33b7d751 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
@@ -13,14 +13,78 @@
"Aasimar"
)
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
+ )
+ )
+
traits_applied = list(RTRAIT_MEDIUMARMOR, RTRAIT_DODGEEXPERT)
+
/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
-
+ 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")
@@ -40,31 +104,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 +121,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 b00a7bdfb2..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
@@ -10,6 +10,34 @@
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
+
+ )
+
+ 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)
..()
shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt
@@ -25,29 +53,10 @@
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)
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/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 938e12742c..31b3b8e91e 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
@@ -11,23 +11,31 @@
outfit = /datum/outfit/job/roguetown/adventurer/sentinal
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
+)
traits_applied = list(RTRAIT_MEDIUMARMOR, RTRAIT_DODGEEXPERT)
/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 403a12344b..e2d2fc0246 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
H.verbs |= /mob/living/carbon/human/proc/faith_test
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 7f63d3fe42..21dadf40b9 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,35 @@
outfit = /datum/outfit/job/roguetown/adventurer/rogue
traits_applied = list(RTRAIT_MEDIUMARMOR, RTRAIT_DODGEEXPERT)
+ given_skills = list(
+ /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" = list(3,4),
+ "intelligence" =2,
+ )
+
/datum/outfit/job/roguetown/adventurer/rogue
allowed_patrons = list(/datum/patron/divine/xylix, /datum/patron/inhumen/matthios)
@@ -24,25 +53,7 @@
..()
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_experiences(/datum/advclass/rogue::given_skills, TRUE, "skills")
pants = /obj/item/clothing/under/roguetown/trou/leather
shirt = /obj/item/clothing/suit/roguetown/shirt/undershirt
gloves = /obj/item/clothing/gloves/roguetown/leather
@@ -56,8 +67,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")
+
ADD_TRAIT(H, RTRAIT_DODGEEXPERT, TRAIT_GENERIC)
- 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 bac5b380e9..34088d125f 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,9 +15,24 @@
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
allowed_patrons = list(/datum/patron/divine/noc)
+
/datum/outfit/job/roguetown/adventurer/sorceress/pre_equip(mob/living/carbon/human/H)
..()
shoes = /obj/item/clothing/shoes/roguetown/simpleshoes
@@ -30,16 +45,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 8cc5d11ab1..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
@@ -18,35 +18,68 @@
outfit = /datum/outfit/job/roguetown/adventurer/sfighter
traits_applied = list(RTRAIT_HEAVYARMOR)
+
+ given_skills = list(
+ "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
+ )
+ )
+
+ stat_changes = list(
+ "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)
..()
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
-
+ 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")
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.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
@@ -76,22 +109,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
diff --git a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm
index 3178cad083..b42c80cd1a 100644
--- a/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm
+++ b/code/modules/jobs/job_types/roguetown/serfs/blacksmith.dm
@@ -24,6 +24,15 @@
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 = 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)
..()
@@ -31,13 +40,16 @@
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(4), TRUE)
- H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, pick(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), TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, pick(1), TRUE)
@@ -94,19 +106,30 @@
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(4), TRUE)
- H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, pick(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), TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, pick(1), TRUE)
diff --git a/code/modules/mob/living/stats.dm b/code/modules/mob/living/stats.dm
index 7d09533190..e120a0fd0c 100644
--- a/code/modules/mob/living/stats.dm
+++ b/code/modules/mob/living/stats.dm
@@ -1,4 +1,10 @@
+
+/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
var/STASTR = 10
var/STAPER = 10
@@ -13,7 +19,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()
@@ -92,166 +98,204 @@
H.eye_color = "ff0000"
H.voice_color = "ff0000"
+
/mob/living/proc/change_stat(stat, amt, index)
+ // i have the tism
if(!stat)
return
if(amt == 0 && index)
if(statindex[index])
- change_stat(statindex[index]["stat"], -1*statindex[index]["amt"])
- statindex[index] = null
+ 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
- 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
+ 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++
+ vars["BUF[get_stat_var(stat)]"] = buff_stat
+ vars["STA[get_stat_var(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