Skip to content
This repository was archived by the owner on Jun 29, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions code/datums/mind.dm
Original file line number Diff line number Diff line change
Expand Up @@ -296,6 +296,25 @@
else
to_chat(current, "<span class='warning'>My [S.name] has weakened!</span>")

// 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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -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, "<span class='warning'>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.</span>")
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
Expand All @@ -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, "<span class='warning'>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.</span>")
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
Expand All @@ -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
Expand Down
112 changes: 65 additions & 47 deletions code/modules/jobs/job_types/roguetown/adventurer/types/combat/bard.dm
Original file line number Diff line number Diff line change
Expand Up @@ -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, "<span class='warning'>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.</span>")
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
Expand All @@ -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, "<span class='warning'>Skalds are wandering storytellers, and for many villages they are local historians keeping the tales of great legends and heroes alive.</span>")
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
Expand All @@ -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))
Expand Down
Loading