Skip to content
This repository has been archived by the owner on Jun 29, 2024. It is now read-only.

Commit

Permalink
Merge pull request #783 from panvxv/goblin-roles
Browse files Browse the repository at this point in the history
Goblin roles
  • Loading branch information
Real-MAGNUM authored May 14, 2024
2 parents 6f2d89a + 5bf122b commit a2ce727
Show file tree
Hide file tree
Showing 9 changed files with 217 additions and 1 deletion.
12 changes: 12 additions & 0 deletions code/__DEFINES/jobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,13 @@
#define DESERT_RIDER (1<<0)
#define GRENZELHOFT (1<<1)

#define GOBLIN (1<<7)

#define GOBLINKING (1<<0)
#define GOBLINCOOK (1<<1)
#define GOBLINGUARD (1<<2)
#define GOBLINSMITH (1<<3)

#define JCOLOR_NOBLE "#aa83b9"
#define JCOLOR_CHURCH "#c0ba8d"
#define JCOLOR_SOLDIER "#b18484"
Expand Down Expand Up @@ -241,3 +248,8 @@

#define JDO_VAGRANT 34
#define JDO_ORPHAN 35

#define JDO_GOBLINKING 36
#define JDO_GOBLINCOOK 37
#define JDO_GOBLINGUARD 38
#define JDO_GOBLINSMITH 39
2 changes: 1 addition & 1 deletion code/modules/client/preferences.dm
Original file line number Diff line number Diff line change
Expand Up @@ -908,7 +908,7 @@ GLOBAL_LIST_EMPTY(chosen_names)
popup.open(FALSE)
onclose(user, "capturekeypress", src)

/datum/preferences/proc/SetChoices(mob/user, limit = 15, list/splitJobs = list("Sheriff", "Priest", "Merchant", "Butler", "Village Elder"), widthPerColumn = 295, height = 620) //295 620
/datum/preferences/proc/SetChoices(mob/user, limit = 14, list/splitJobs = list("Sheriff", "Priest", "Merchant", "Butler", "Village Elder", "Goblin King"), widthPerColumn = 295, height = 620) //295 620
if(!SSjob)
return

Expand Down
34 changes: 34 additions & 0 deletions code/modules/jobs/job_types/roguetown/goblin/goblincook.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/datum/job/roguetown/goblincook
title = "Goblin Cook"
flag = GOBLINCOOK
department_flag = GOBLIN
faction = "Station"
total_positions = 2
spawn_positions = 2
allowed_sexes = list(MALE)
allowed_races = list("Goblin")
allowed_patrons = list("Graggar")
tutorial = "Cook, farm, butcher. Make king happy with apple pies! Don't forget about your brothers."

outfit = /datum/outfit/job/roguetown/goblincook
display_order = JDO_GOBLINCOOK
min_pq = 0
max_pq = null

/datum/outfit/job/roguetown/goblincook/pre_equip(mob/living/carbon/human/H)
..()
armor = /obj/item/clothing/suit/roguetown/armor/leather/hide/goblin
belt = /obj/item/storage/belt/rogue/leather/rope
cloak = /obj/item/clothing/cloak/apron/cook
head = /obj/item/clothing/head/roguetown/cookhat
neck = /obj/item/storage/belt/rogue/pouch/coins/poor
if(H.mind)
H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/cooking, 4, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/crafting, 2, TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/sewing, 2, TRUE)
H.mind.adjust_skillrank(/datum/skill/labor/butchering, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/labor/farming, 4, TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/climbing, 3, TRUE)
H.change_stat("intelligence", 1)
H.change_stat("fortune", 1)
44 changes: 44 additions & 0 deletions code/modules/jobs/job_types/roguetown/goblin/goblinguard.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
/datum/job/roguetown/goblinguard
title = "Goblin Guard"
flag = GOBLINGUARD
department_flag = GOBLIN
faction = "Station"
total_positions = 10
spawn_positions = 10
allowed_sexes = list(MALE)
allowed_races = list("Goblin")
allowed_patrons = list("Graggar")
tutorial = "Goblin Guards rensposible for their kingdom and his majesty King."
display_order = JDO_GOBLINGUARD
min_pq = 1
max_pq = null

/datum/outfit/job/roguetown/goblinguard/pre_equip(mob/living/carbon/human/H)
. = ..()
head = /obj/item/clothing/head/roguetown/helmet/leather/goblin
armor = /obj/item/clothing/suit/roguetown/armor/leather/hide/goblin
belt = /obj/item/storage/belt/rogue/leather
backr = /obj/item/storage/backpack/rogue/satchel
backpack_contents = list(/obj/item/rope/chain = 1)
H.verbs |= /mob/proc/haltyell
ADD_TRAIT(H, RTRAIT_MEDIUMARMOR, TRAIT_GENERIC)
if(H.mind)
H.mind.adjust_skillrank(/datum/skill/combat/axesmaces, 3, TRUE) // Town guards have stronger street skills then castle guards.
H.mind.adjust_skillrank(/datum/skill/combat/bows, 2, TRUE)
H.mind.adjust_skillrank(/datum/skill/combat/crossbows, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/combat/wrestling, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/combat/unarmed, 4, TRUE)
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/whipsflails, 3 , TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/sneaking, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/combat/knives, 4, 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, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/medicine, 1, TRUE)
H.change_stat("strength", 1)
H.change_stat("perception", 2)
H.change_stat("constitution", 1)
H.change_stat("endurance", 1)
H.change_stat("intelligence", -1)
76 changes: 76 additions & 0 deletions code/modules/jobs/job_types/roguetown/goblin/goblinking.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@

/datum/job/roguetown/goblinking
title = "Goblin King"
flag = GOBLINKING
department_flag = GOBLIN
faction = "Station"
total_positions = 1
spawn_positions = 1
allowed_sexes = list(MALE)
allowed_races = list("Goblin")
allowed_patrons = list("Graggar")
tutorial = "Goblin King is a fatty lazy pig who wishes to do nothing but eat apple pies and fart while sitting on his stone throne."
whitelist_req = FALSE
outfit = /datum/outfit/job/roguetown/goblinking

display_order = JDO_GOBLINKING
min_pq = 2
max_pq = null

/datum/outfit/job/roguetown/goblinking/pre_equip(mob/living/carbon/human/H)
..()
H.verbs |= /mob/living/carbon/human/proc/goblinannouncement
//H.verbs |= /mob/living/carbon/human/proc/goblinopenslot
beltl = /obj/item/rogueweapon/huntingknife/idagger/steel/special
belt = /obj/item/storage/belt/rogue/leather/rope
beltr = /obj/item/storage/belt/rogue/pouch/coins/rich
armor = /obj/item/clothing/suit/roguetown/armor/leather/hide/goblin
if(H.mind)
H.mind.adjust_skillrank(/datum/skill/misc/reading, 1, TRUE)
H.mind.adjust_skillrank(/datum/skill/combat/knives, 3, TRUE)
H.change_stat("strength", -1)
H.change_stat("intelligence", 2)
H.change_stat("constitution", 6)
H.change_stat("endurance", 1)
H.change_stat("speed", -2)

/mob/living/carbon/human/proc/goblinannouncement()
set name = "Announcement"
set category = "Goblin King"
if(stat)
return
var/inputty = input("Make an announcement", "ROGUETOWN") as text|null
if(inputty)
if(!istype(get_area(src), /area/rogue/outdoors/mountains/decap))
to_chat(src, "<span class='warning'>I need to do this from the Goblin Kingdom.</span>")
return FALSE
priority_announce("[inputty]", title = "The Goblin King Squeals", sound = 'sound/misc/dun.ogg')
/*
/mob/living/carbon/human/proc/goblinopenslot()
set name = "Open Slot"
set category = "Goblin King"
if(stat)
return
var/datum/job/cookjob = SSjob.GetJob("Goblin Cook")
var/datum/job/guardjob = SSjob.GetJob("Goblin Guard")
var/datum/job/smithjob = SSjob.GetJob("Goblin Smith")
var/list/souloptions = list("Goblin Cook", "Goblin Guard", "Goblin Smith")
var/pickedsoul = input("Which worker shall join kingdom?", "Available workers") as null|anything in souloptions
if(!istype(get_area(src), /area/rogue/outdoors/mountains/decap))
to_chat(src, "<span class='warning'>I need to do this from the Goblin Kingdom.</span>")
return FALSE
if(!pickedsoul)
return
switch(pickedsoul)
if("Goblin Cook")
cookjob.total_positions += 1
priority_announce("Goblin Cook shall join our Kingdom", title = "The Goblin King Hires", sound = 'sound/misc/dun.ogg')
if("Goblin Guard")
guardjob.total_positions += 1
priority_announce("Goblin Guard shall join our Kingdom", title = "The Goblin King Hires", sound = 'sound/misc/dun.ogg')
if("Goblin Smith")
smithjob.total_positions += 1
priority_announce("Goblin Smith shall join our Kingdom", title = "The Goblin King Hires", sound = 'sound/misc/dun.ogg')
*/


38 changes: 38 additions & 0 deletions code/modules/jobs/job_types/roguetown/goblin/goblinsmith.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
/datum/job/roguetown/goblinsmith
title = "Goblin Smith"
flag = GOBLINSMITH
department_flag = GOBLIN
faction = "Station"
total_positions = 2
spawn_positions = 2
allowed_sexes = list(MALE)
allowed_races = list("Goblin")
allowed_patrons = list("Graggar")
tutorial = "Goblin rensposible for fresh iron and steel"
display_order = JDO_GOBLINSMITH
outfit = /datum/outfit/job/roguetown/goblinsmith

/datum/outfit/job/roguetown/goblinsmith/pre_equip(mob/living/carbon/human/H)
..()
armor = /obj/item/clothing/suit/roguetown/armor/leather/hide/goblin
belt = /obj/item/storage/belt/rogue/leather
neck = /obj/item/storage/belt/rogue/pouch/coins/poor
cloak = /obj/item/clothing/cloak/apron/brown
backl = /obj/item/storage/backpack/rogue/satchel

if(H.mind)
H.mind.adjust_skillrank(/datum/skill/combat/knives, 2, TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/swimming, pick(0,0,1), TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/climbing, pick(1,1,2), TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/crafting, 2 , TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/masonry, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/engineering, pick(2,2,3), TRUE)
H.mind.adjust_skillrank(/datum/skill/misc/sewing, pick(1,1,2), TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/traps, pick(1,1,2), TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/blacksmithing, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/armorsmithing, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/weaponsmithing, 3, TRUE)
H.mind.adjust_skillrank(/datum/skill/craft/carpentry, 3, TRUE)
H.change_stat("strength", 1)
H.change_stat("endurance", 1)
H.change_stat("speed", -2)
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@
soundpack_f = /datum/voicepack/male/goblin
changesource_flags = MIRROR_BADMIN | WABBAJACK | MIRROR_MAGIC | MIRROR_PRIDE | ERT_SPAWN | RACE_SWAP | SLIME_EXTRACT
nojumpsuit = 1
mutanteyes = /obj/item/organ/eyes/goblin
offset_features = list(OFFSET_ID = list(0,0), OFFSET_WRISTS = list(0,0),\
OFFSET_CLOAK = list(0,0), \
OFFSET_FACE = list(0,-4), OFFSET_BELT = list(0,-1), OFFSET_BACK = list(0,-4), \
Expand All @@ -31,6 +32,7 @@
OFFSET_FACE_F = list(0,-5), OFFSET_BELT_F = list(0,-1), OFFSET_BACK_F = list(0,-5), \
OFFSET_NECK_F = list(0,-5), OFFSET_MOUTH_F = list(0,-3), \
OFFSET_ARMOR_F = list(0,0), OFFSET_UNDIES = list(0,0), OFFSET_UNDIES_F = list(0,0))
specstats = list("strength" = -3, "perception" = 2, "intelligence" = -4, "constitution" = -3, "endurance" = 3, "speed" = 4, "fortune" = -1)


/datum/species/goblinp/on_species_gain(mob/living/carbon/C, datum/species/old_species)
Expand Down
6 changes: 6 additions & 0 deletions code/modules/surgery/organs/eyes.dm
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,12 @@
see_in_dark = 3
lighting_alpha = LIGHTING_PLANE_ALPHA_LESSER_NV_TRAIT

/obj/item/organ/eyes/goblin
name = "goblin eyes"
desc = ""
see_in_dark = 15
lighting_alpha = 200

///Robotic

/obj/item/organ/eyes/robotic
Expand Down
4 changes: 4 additions & 0 deletions roguetown.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2158,6 +2158,10 @@
#include "code\modules\jobs\job_types\roguetown\garrison\townguard.dm"
#include "code\modules\jobs\job_types\roguetown\garrison\veteran.dm"
#include "code\modules\jobs\job_types\roguetown\garrison\villagechief.dm"
#include "code\modules\jobs\job_types\roguetown\goblin\goblincook.dm"
#include "code\modules\jobs\job_types\roguetown\goblin\goblinguard.dm"
#include "code\modules\jobs\job_types\roguetown\goblin\goblinking.dm"
#include "code\modules\jobs\job_types\roguetown\goblin\goblinsmith.dm"
#include "code\modules\jobs\job_types\roguetown\mercenaries\desertrider.dm"
#include "code\modules\jobs\job_types\roguetown\mercenaries\grenzelhoft.dm"
#include "code\modules\jobs\job_types\roguetown\nobility\bailiff.dm"
Expand Down

0 comments on commit a2ce727

Please sign in to comment.