diff --git a/code/__DEFINES/say.dm b/code/__DEFINES/say.dm index 049065292de..200fc8f1187 100644 --- a/code/__DEFINES/say.dm +++ b/code/__DEFINES/say.dm @@ -62,6 +62,7 @@ #define MODE_SING "sing" #define SPAN_GEN "say" +#define SPAN_GRONNIC "gronnic" #define SPAN_DWARF "dwarf" #define SPAN_ELF "elf" #define SPAN_OLDPSYDONIC "oldpsydonic" diff --git a/code/datums/faith/_devotion.dm b/code/datums/faith/_devotion.dm index 7ae5834eb51..425709bee69 100644 --- a/code/datums/faith/_devotion.dm +++ b/code/datums/faith/_devotion.dm @@ -192,6 +192,12 @@ progression = CLERIC_REQ_1 max_progression = CLERIC_REQ_3 +/datum/devotion/proc/make_shaman() + devotion = 80 + max_devotion = CLERIC_REQ_1 + progression = CLERIC_REQ_1 + max_progression = CLERIC_REQ_1 + /datum/devotion/proc/make_churchling() max_devotion = CLERIC_REQ_1 progression = CLERIC_REQ_1 diff --git a/code/datums/status_effects/debuffs/gronn.dm b/code/datums/status_effects/debuffs/gronn.dm new file mode 100644 index 00000000000..99e0ad94ec1 --- /dev/null +++ b/code/datums/status_effects/debuffs/gronn.dm @@ -0,0 +1,8 @@ +/datum/status_effect/debuff/lost_shaman_hood + id = "naledimask" + alert_type = /atom/movable/screen/alert/status_effect/debuff/shamanhood + effectedstats = list(STATKEY_LCK = -3) + +/atom/movable/screen/alert/status_effect/debuff/shamanhood + name = "Lost Hood" + desc = "The sacred hood is lost. I feel frail and sapped without it." diff --git a/code/datums/stress/negative_events.dm b/code/datums/stress/negative_events.dm index dcc233986e2..60b28ed3c78 100644 --- a/code/datums/stress/negative_events.dm +++ b/code/datums/stress/negative_events.dm @@ -825,3 +825,8 @@ if(istiefling(user)) return 0 return ..() + +/datum/stress_event/shamanhoodlost + stress_change = 3 + desc = span_boldred("I have lost my hood! My failure to protect it leaves open the defilement my future reincarnations!") + timer = 999 MINUTES diff --git a/code/game/objects/items/weapons/melee/gronn.dm b/code/game/objects/items/weapons/melee/gronn.dm new file mode 100644 index 00000000000..abeece52a42 --- /dev/null +++ b/code/game/objects/items/weapons/melee/gronn.dm @@ -0,0 +1,206 @@ +// Weapons +/obj/item/weapon/sword/short/gronn + name = "Osslandic hinterblade" + desc = "Due to the shortage of forged steel in Ossland, their iron blades have become hardier and thicker than what one may see elsewhere. The favoured weapon of choice for any able-bodied hunter of Ossland, the hinterblade is the heftier, unwieldy cousin of the arming sword." + possible_item_intents = list(/datum/intent/sword/cut/militia, /datum/intent/sword/chop/militia, /datum/intent/sword/thrust/short) + icon_state = "gronnsword" + gripped_intents = null + minstr = 10 //NO TWINKS!! + wdefense = 3 // Use it with a shield jackass + wlength = WLENGTH_SHORT + w_class = WEIGHT_CLASS_NORMAL + + grid_width = 32 + grid_height = 96 + +/datum/intent/sword/cut/militia + penfactor = 30 + damfactor = 1.2 + no_early_release = TRUE + +/datum/intent/sword/chop/militia + penfactor = 50 + swingdelay = 0 + damfactor = 1.0 + no_early_release = TRUE + +/obj/item/weapon/handclaw + name = "Iron Hound Claws" + desc = "A pair of heavily curved claws, styled after beasts of the wilds for rending bare flesh, \ + a show of the continual worship and veneration of the Great Hunt in Ossland." + icon = 'icons/roguetown/weapons/32/fists_claws.dmi' + icon_state = "ironclaws" + parrysound = list('sound/combat/parry/bladed/bladedthin (1).ogg', 'sound/combat/parry/bladed/bladedthin (2).ogg', 'sound/combat/parry/bladed/bladedthin (3).ogg') + force = 30 + throwforce = 12 + thrown_bclass = BCLASS_CUT + wdefense = ULTMATE_PARRY + wlength = WLENGTH_NORMAL + possible_item_intents = list(/datum/intent/claw/cut/iron, /datum/intent/claw/lunge/iron, /datum/intent/claw/rend) + wbalance = DODGE_CHANCE_NORMAL + max_blade_int = 300 + max_integrity = INTEGRITY_STANDARD + + w_class = WEIGHT_CLASS_NORMAL + slot_flags = ITEM_SLOT_HIP + swingsound = list('sound/combat/wooshes/bladed/wooshmed (1).ogg','sound/combat/wooshes/bladed/wooshmed (2).ogg','sound/combat/wooshes/bladed/wooshmed (3).ogg') + associated_skill = /datum/skill/combat/unarmed + pickup_sound = 'sound/foley/equip/swordsmall2.ogg' + anvilrepair = /datum/skill/craft/weaponsmithing + smeltresult = /obj/item/ingot/iron + grid_height = 96 + grid_width = 32 + +/obj/item/weapon/handclaw/steel + name = "Steel Mantis Claws" + desc = "A pair of steel claws, an uncommon sight in Ossland as they do not forge their own steel, \ + Their longer blades offer a superior defence option but their added weight slows them down." + icon_state = "steelclaws" + wdefense = 6 + force = 35 + possible_item_intents = list(/datum/intent/claw/cut/steel, /datum/intent/claw/lunge/steel, /datum/intent/claw/rend/steel) + wbalance = EASY_TO_DODGE + max_blade_int = 180 + max_integrity = 200 + smeltresult = /obj/item/ingot/steel + +/obj/item/weapon/handclaw/gronn + name = "Ossland Beast Claws" + desc = "A pair of uniquely reinforced iron claws forged with the addition of bone by the cleric-priests of Ossland. \ + Their unique design aids them in slipping between the plates in armor and their light weight supports rapid aggressive slashes. \ + 'The cycle of predator and prey continues. To hunt is to be hunted is to hunt in return.'" + icon_state = "gronnclaws" + wdefense = 3 + force = 25 + possible_item_intents = list(/datum/intent/claw/cut/gronn, /datum/intent/claw/lunge/gronn, /datum/intent/claw/rend) + wbalance = HARD_TO_DODGE + max_blade_int = 200 + max_integrity = 200 + + +/obj/item/weapon/handclaw/getonmobprop(tag) + . = ..() + if(tag) + switch(tag) + if("gen") + return list("shrink" = 0.4,"sx" = -7,"sy" = -4,"nx" = 7,"ny" = -4,"wx" = -3,"wy" = -4,"ex" = 1,"ey" = -4,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0,"nturn" = 110,"sturn" = -110,"wturn" = -110,"eturn" = 110,"nflip" = 0,"sflip" = 8,"wflip" = 8,"eflip" = 0) + if("onbelt") + return list("shrink" = 0.3,"sx" = -2,"sy" = -5,"nx" = 4,"ny" = -5,"wx" = 0,"wy" = -5,"ex" = 2,"ey" = -5,"nturn" = 0,"sturn" = 0,"wturn" = 0,"eturn" = 0,"nflip" = 0,"sflip" = 0,"wflip" = 0,"eflip" = 0,"northabove" = 0,"southabove" = 1,"eastabove" = 1,"westabove" = 0) + +/datum/intent/claw/lunge + name = "lunge" + icon_state = "inimpale" + attack_verb = list("lunges") + animname = "stab" + blade_class = BCLASS_STAB + hitsound = list('sound/combat/hits/bladed/genstab (1).ogg', 'sound/combat/hits/bladed/genstab (2).ogg', 'sound/combat/hits/bladed/genstab (3).ogg') + +/datum/intent/claw/lunge/iron + damfactor = 1.2 + swingdelay = 8 + clickcd = CLICK_CD_MELEE + penfactor = 35 + +/datum/intent/claw/lunge/steel + damfactor = 1.2 + swingdelay = 12 + clickcd = CLICK_CD_RESIST + penfactor = 35 + +/datum/intent/claw/lunge/gronn + damfactor = 1.1 + swingdelay = 5 + clickcd = 10 + penfactor = 45 + +/datum/intent/claw/cut + name = "cut" + icon_state = "incut" + attack_verb = list("cuts", "slashes") + animname = "cut" + blade_class = BCLASS_CUT + hitsound = list('sound/combat/hits/bladed/smallslash (1).ogg', 'sound/combat/hits/bladed/smallslash (2).ogg', 'sound/combat/hits/bladed/smallslash (3).ogg') + item_damage_type = "slash" + +/datum/intent/claw/cut/iron + penfactor = 20 + swingdelay = 8 + damfactor = 1.4 + clickcd = CLICK_CD_RESIST + +/datum/intent/claw/cut/steel + penfactor = 10 + swingdelay = 4 + damfactor = 1.3 + clickcd = CLICK_CD_RESIST + +/datum/intent/claw/cut/gronn + penfactor = 30 + swingdelay = 0 + damfactor = 1.1 + clickcd = CLICK_CD_MELEE + +/datum/intent/claw/rend + name = "rend" + icon_state = "inrend" + attack_verb = list("rends") + animname = "cut" + blade_class = BCLASS_CHOP + reach = 1 + penfactor = AP_CLUB_SMASH + swingdelay = 20 + damfactor = 2.5 + clickcd = CLICK_CD_RESIST + no_early_release = TRUE + hitsound = list('sound/combat/hits/bladed/genslash (1).ogg', 'sound/combat/hits/bladed/genslash (2).ogg', 'sound/combat/hits/bladed/genslash (3).ogg') + item_damage_type = "slash" + misscost = 10 + damfactor = 0.05 + +/datum/intent/claw/rend/steel + damfactor = 3 + +//Mauls. Woe. Most characters will not be able to engage with this, beyond hobbling. +//Why? The unique strength lockout. The minimum strength is not a suggestion. +/obj/item/weapon/mace/goden/maul + force_wielded = DAMAGE_HEAVYCLUB_WIELD - 3 //-3 compared to grand mace(steel goden). Better intents. + possible_item_intents = list(/datum/intent/mace/strike) + gripped_intents = list(/datum/intent/mace/strike, /datum/intent/mace/smash, /datum/intent/effect/daze, /datum/intent/effect/hobble) + name = "maul" + desc = "Who would need something this large? It looks like it was made for tearing down walls, rather than men." + icon_state = "sledge" + wlength = WLENGTH_LONG + swingsound = BLUNTWOOSH_HUGE + slot_flags = null //No. + minstr = 14 + wdefense = 3 + dropshrink = 0.6 + bigboy = TRUE + gripsprite = TRUE + +//Intents for the mauls. +/datum/intent/effect/hobble + name = "hobbling strike" + desc = "A heavy strike aimed at the legs to cripple movement." + icon_state = "incrack"//Temp. Just so it's easy to differentiate. + attack_verb = list("hobbles") + animname = "strike" + hitsound = list('sound/combat/hits/blunt/shovel_hit3.ogg') + swingdelay = 6 + damfactor = 0.8 + penfactor = AP_CLUB_STRIKE + clickcd = CLICK_CD_RESIST + item_damage_type = "blunt" + intent_effect = /datum/status_effect/debuff/hobbled + target_parts = list(BODY_ZONE_L_LEG, BODY_ZONE_R_LEG) //Intentionally leaving out feet. If you know, you know. + +/datum/status_effect/debuff/hobbled + id = "hobbled" + alert_type = /atom/movable/screen/alert/status_effect/debuff/hobbled + effectedstats = list(STATKEY_SPD = -2) + duration = 8 SECONDS + +/atom/movable/screen/alert/status_effect/debuff/hobbled + name = "Hobbled" + desc = "You've been struck in the leg! The force has left you staggered!" + icon_state = "dazed" diff --git a/code/modules/clothing/armor/leather.dm b/code/modules/clothing/armor/leather.dm index f8336bc63e2..133953535c3 100644 --- a/code/modules/clothing/armor/leather.dm +++ b/code/modules/clothing/armor/leather.dm @@ -353,3 +353,14 @@ prevent_crits = list(BCLASS_CUT, BCLASS_STAB, BCLASS_BLUNT, BCLASS_CHOP, BCLASS_SMASH) max_integrity = ARMOR_INT_CHEST_LIGHT_MASTER sellprice = 20 + +// gronnic subtype +/obj/item/clothing/armor/leather/heavy/gronn + name = "osslandic ravager mantle" + desc = "A carefully created mantle of bone and hardened leather. It offers superior protection against the threats of the wild while remaining light, \ + A popular design in Ossland is to adorn a shoulder with a wolf pelt, a symbol of the Great Hunt." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnleatherarmor" + item_state = "gronnleatherarmor" + armor = ARMOR_GRONN_LIGHT diff --git a/code/modules/clothing/armor/plate.dm b/code/modules/clothing/armor/plate.dm index 1de7063c11d..91d2ba27f5e 100644 --- a/code/modules/clothing/armor/plate.dm +++ b/code/modules/clothing/armor/plate.dm @@ -202,3 +202,18 @@ name = "Psydonic Endurance" desc = "I am protected by blessed Psydonian plate armor." icon_state = "buff" + +//.............. Gronn Armor Sets .................// +/obj/item/clothing/armor/plate/iron/gronn + name = "osslandic iron plate" + desc = "A suit of solid iron plate, adorned with tassets and roundels. \ + The hunters of Ossland rarely used plate, but when they did, \ + it is said that they were after the most dangerous of prey: their enemies." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnplate" + item_state = "gronnplate" + boobed = FALSE + body_parts_covered = COVERAGE_ALL_BUT_LEGS + max_integrity = ARMOR_INT_CHEST_PLATE_STEEL + smeltresult = /obj/item/ingot/iron diff --git a/code/modules/clothing/gloves/angle.dm b/code/modules/clothing/gloves/angle.dm index 1eeff2f5597..c6ac1bcc51b 100644 --- a/code/modules/clothing/gloves/angle.dm +++ b/code/modules/clothing/gloves/angle.dm @@ -17,3 +17,26 @@ desc = "Regal gloves of Grenzelhoftian design, more a fashion statement than actual protection." icon_state = "grenzelgloves" sleeved = 'icons/roguetown/clothing/onmob/helpers/stonekeep_merc.dmi' + +// gronn subtypes +/obj/item/clothing/gloves/angle/gronn + name = "osslandic fur-lined leather gloves" + desc = "Thick, padded gloves made for the harshest of climates and the wildest of beasts encountered in the untamed north." + icon_state = "gronnleathergloves" + item_state = "gronnleathergloves" + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + color = "#ffffff" + +/obj/item/clothing/gloves/angle/gronnfur + name = "osslandic fur-lined bone gloves" + desc = "A pair of hardened leather gloves with bone reinforcements across the wrists\ + and the back of the hand, offering superior protection against\ + the claws of beasts and plants alike. Commonly worn by gatherers." + icon_state = "gronnfurgloves" + item_state = "gronnfurgloves" + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + unarmed_bonus = 1.25 + max_integrity = 250 + color = "#ffffff" diff --git a/code/modules/clothing/gloves/chain.dm b/code/modules/clothing/gloves/chain.dm index a9dc2379228..88c0f297a2b 100644 --- a/code/modules/clothing/gloves/chain.dm +++ b/code/modules/clothing/gloves/chain.dm @@ -50,3 +50,11 @@ icon_state = "shadowgauntlets" allowed_race = RACES_PLAYER_ELF_ALL item_weight = 6 * STEEL_MULTIPLIER + +/obj/item/clothing/gloves/chain/gronn + name = "osslandic chain gloves" + desc = "A pair of leather gloves with chain to protects the wrists and back of the hand." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnchaingloves" + item_state = "gronnchaingloves" diff --git a/code/modules/clothing/gloves/plate.dm b/code/modules/clothing/gloves/plate.dm index 690d3535fc6..76b93e2544d 100644 --- a/code/modules/clothing/gloves/plate.dm +++ b/code/modules/clothing/gloves/plate.dm @@ -103,3 +103,12 @@ mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/evilarmor.dmi' sleeved = 'icons/roguetown/clothing/special/onmob/evilarmor.dmi' sellprice = 0 // See above comment + +//............... Gronnic gloves ............... // +/obj/item/clothing/gloves/plate/iron/gronn + name = "osslandic iron gauntlets" + desc = "Tough iron gauntlets, simple and protective in design. A single punch is said to leave a dozen bruises." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnplategloves" + item_state = "gronnplategloves" diff --git a/code/modules/clothing/head/helmets/heavy.dm b/code/modules/clothing/head/helmets/heavy.dm index d6b1a8952e8..6bc764a5ec1 100644 --- a/code/modules/clothing/head/helmets/heavy.dm +++ b/code/modules/clothing/head/helmets/heavy.dm @@ -536,3 +536,21 @@ adjustable = CAN_CADJUST block2add = FOV_BEHIND max_integrity = 400 + +//............... Gronn Heavy Helmet ...............// +/obj/item/clothing/head/helmet/heavy/bucket/gronn + name = "osslandic horned helmet" + desc = "A horned helms of solid iron. \ + A suitable replacement for the precious skull-helms worn in Ossland. \ + For of course, to have your skull-helm smashed is the highest of disrespects." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/onmob/64x64/gronn.dmi' + bloody_icon = 'icons/effects/blood64x64.dmi' + icon_state = "gronnplatehelm" + item_state = "gronnplatehelm" + emote_environment = 3 + flags_inv = HIDEEARS|HIDEFACE|HIDEHAIR + block2add = FOV_BEHIND + smeltresult = /obj/item/ingot/iron + worn_x_dimension = 64 + worn_y_dimension = 64 diff --git a/code/modules/clothing/neck/psycross.dm b/code/modules/clothing/neck/psycross.dm index 078241392e6..1197eea0f08 100644 --- a/code/modules/clothing/neck/psycross.dm +++ b/code/modules/clothing/neck/psycross.dm @@ -18,6 +18,42 @@ sellprice = 0 experimental_onhip = TRUE +/* // GRONN PSYCROSSES +/obj/item/clothing/neck/psycross/gronn + name = "carved talisman" //plotting talisman + desc = "'The hunt, the studying of your prey, the learning of its routes, the knowledge our ancestors passed down, the empowerment of your people and yourself. Learn of the world, or fade away.'

The Plotting Wolf embodies the virtues of progress and knowledge, so that no obstacle nor threat to the homeland remains insurmountable. To understand the truths of beast-and-bronze is to lighten the future's hardships. Do not humor magicka, however, for playing with fire shall always end in someone being burned." + icon_state = "gronnzizo" + +/obj/item/clothing/neck/psycross/gronn/baothagronn + name = "carved talisman" //relishing talisma + desc = "'“The excess of desire, the want of more, the glory of victory, the lover's embrace. Embrace the Leopard, or forget your strength.'

The Relishing Leopard embodies the virtues of love and glory, both in battle and at home. Enjoy the flesh, the drink, and the spice; but be wary to avoid overindulgence, for it shall leave you despondant and lethargic. To become too comfortable is to become weak, and such weakness would turn you into a delicious snack for the Leopard." + icon_state = "gronnbaotha" + +/obj/item/clothing/neck/psycross/gronn/matthios + name = "carved talisman" //starving talisman + desc = "'“The hunger, the destruction, the impending frost, the enemy of my enemy. Feed the Bear, or be consumed.'

The Starving Bear embodies not a virtue, but the necessity to thrive above all else. Avarice is not a sin, but a virtue; to ensure that the homeland never suffers from poverty nor starvation again. Pillage, plunder, and perforate the wealth that others would keep from you, but do not forget that every choice begets consequences." + icon_state = "gronnmatthios" + +/obj/item/clothing/neck/psycross/gronn/graggar + name = "carved talisman" //grinning talisman + desc = "'The battle, the combat, the violence, the rush of victory, the honored glories. Defeat the foe, or die with them.'

The Grinning Moose embodies the virtues of strengh and domination; to survive both the homeland's frigid blizzards and those who'd seek to maraude its countrymen. Be untamed and unstoppable, but do not lose yourself in the haze; for even the Moose was chained, once. Kill your own without reason, and the chain shall be tugged; and your soul, too, shall be impaled on their horns." + icon_state = "gronngraggar" + +/obj/item/clothing/neck/psycross/gronn/dendor + name = "carved talisman" //volfskinned talisman + desc = "'The world above, of knifetoothed plants and rotting carrion. From jungle to desert, even the stones are nature. Heed its call with the respect it commands, or succumb to madness.'

The Volfskinned Man embodies the virtue of nature and temperance; to live in harmony with the world and its spirits. Pluck a jackberry, plant a seed - Slay a beast, see no part wasted. Yet, temperance must be shown; to take from the world without respect-nor-exchange is to curse the homeland with misfortune. Yet, to completely embrace the world's primality is to lose your humanity - and worse, to become the very beast you hunt." + icon_state = "gronndendor" + +/obj/item/clothing/neck/psycross/gronn/abyssor + name = "carved talisman" //hadal talisman + desc = "'The chaos below, of coldblack pressure and crushing weight. Be the current. Control the waves. Reign your sails and hold fast against the storm, or be washed away onto an odyssey with no end.'

The Spiraling Kraken is no virtue, but a presence; the homeland's nautical warden, who's tentacled presence is as unpredictable as the oceans it lords over. To embrace the uncertainty of lyfe is to be rewarded with fortune and mercy when it is most needed. Do not embrace such futility, however, lest you are swept away with all the others into the abyss." + icon_state = "gronnabyssor" + +/obj/item/clothing/neck/psycross/gronn/special + name = "carved talisman" //familial talisman + desc = "'The memories of the past, and the dreams of the future. A fetish of a beaste, and the carvings of a force that no one beyond your homeland could understand. Sail gracefully, countryman.'" + */ + // SILVER PSYCROSS START /obj/item/clothing/neck/psycross/silver diff --git a/code/modules/clothing/outfits/atveri.dm b/code/modules/clothing/outfits/atveri.dm index 00e98c9c67b..b31d6ec0647 100644 --- a/code/modules/clothing/outfits/atveri.dm +++ b/code/modules/clothing/outfits/atveri.dm @@ -1,14 +1,14 @@ /obj/item/clothing/armor/chainmail/hauberk/atgervi - name = "vagarian hauberk" - desc = "The pride of the Hammerhold mercenaries a well crafted blend of chain and leather into a dense protective coat." + name = "dwarven-make hauberk" + desc = "The pride of mercenaries from the Dwarven Federation, a well crafted blend of chain and leather into a dense protective coat." icon_state = "atgervi_raider_mail" item_state = "atgervi_raider_mail" max_integrity = 400 /obj/item/clothing/armor/leather/heavy/atgervi - name = "shamanic coat" - desc = "A furred protective coat, Often made by hand it embodies the second trial of the Iskarn Shamans. To honor the leopard is to desire for more." + name = "shaman's coat" + desc = "A furred protective coat, often made by hand from a beast killed in the bearer's hunt." icon_state = "atgervi_shaman_coat" item_state = "atgervi_shaman_coat" @@ -26,7 +26,7 @@ /obj/item/clothing/gloves/plate/atgervi name = "beast claws" - desc = "A menacing pair of plated claws, A closely protected tradition of the Shamans. The four claws embodying the four great beasts. Decorated with symbols of the gods they praise and the Gods they reject." + desc = "A menacing pair of plated claws, a ceremonial weapon of the Osslandic hunters. The four claws symbolize the four godly aspects they revere." icon_state = "atgervi_shaman_gloves" item_state = "atergvi_shaman_gloves" @@ -45,7 +45,7 @@ /obj/item/clothing/head/helmet/leather/saiga/atgervi name = "moose hood" - desc = "A deceptively strong hood of hide with a pair of large heavy antlers. It is the reward of the fourth trial of the Iskarn Shamans, To slay a Grinning moose in the final hunt alone and fashion a hood from its head." + desc = "A deceptively strong hood of hide with a pair of large heavy antlers. A suitable memorial for a worthy beast." icon_state = "atgervi_shaman" item_state = "atgervi_shaman" flags_inv = HIDEEARS|HIDEFACE @@ -85,3 +85,166 @@ switch(tag) if("onback") return list("shrink" = 0.7,"sx" = -17,"sy" = -15,"nx" = -15,"ny" = -15,"wx" = -12,"wy" = -15,"ex" = -18,"ey" = -15,"nturn" = 0,"sturn" = 0,"wturn" = 180,"eturn" = 0,"nflip" = 8,"sflip" = 0,"wflip" = 1,"eflip" = 0,"northabove" = 1,"southabove" = 0,"eastabove" = 0,"westabove" = 0) + +// Gronnic subtypes of atgervi clothes +/obj/item/clothing/head/helmet/leather/shaman_hood + slot_flags = ITEM_SLOT_HEAD|ITEM_SLOT_HIP + misc_flags = CRAFTING_TEST_EXCLUDE //special item with unique mechanics, not craftable + name = "moose hood" + desc = "A deceptively strong moosehide hood with a pair of large heavy antlers. It is the reward of the fourth trial of the Iskarn Shamans: To slay a Grinning Moose in the final hunt alone - and fashion a hood from its head." + body_parts_covered = HEAD|HAIR|EARS|NOSE + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/onmob/32x48/gronn.dmi' + icon_state = "gronnfurhood" + item_state = "gronnfurhood" + bloody_icon = 'icons/effects/blood64x64.dmi' + armor = ARMOR_LEATHER_GOOD + flags_inv = HIDEEARS|HIDEFACE + worn_x_dimension = 32 + worn_y_dimension = 48 + sellprice = 10 + anvilrepair = null + smeltresult = null + sewrepair = TRUE + blocksound = SOFTHIT + max_integrity = ARMOR_INT_HELMET_HARDLEATHER + salvage_result = /obj/item/natural/hide/cured + var/on = FALSE + var/lux_consumed = FALSE + var/lux_color = LIGHT_COLOR_CYAN + adjustable = CAN_CADJUST + light_color = LIGHT_COLOR_ORANGE + light_system = MOVABLE_LIGHT + light_outer_range = 3 + light_power = 1 + toggle_icon_state = TRUE + +/obj/item/clothing/head/helmet/leather/shaman_hood/equipped(mob/user, slot) + . = ..() + if(ishuman(user)) + var/mob/living/carbon/human/H = user + H.remove_status_effect(/datum/status_effect/debuff/lost_shaman_hood) + H.remove_stress(/datum/stress_event/shamanhoodlost) + +/obj/item/clothing/head/helmet/leather/shaman_hood/dropped(mob/user) + . = ..() + if(ishuman(user)) + var/mob/living/carbon/human/H = user + if(H.merctype == 1) //Atgervi + H.apply_status_effect(/datum/status_effect/debuff/lost_shaman_hood) + H.add_stress(/datum/stress_event/shamanhoodlost) + +/obj/item/clothing/head/helmet/leather/shaman_hood/Initialize(mapload) + . = ..() + set_light_on(FALSE) + +/obj/item/clothing/head/helmet/leather/shaman_hood/MiddleClick(mob/user) + if(.) + return + if(adjustable == CADJUSTED) + return + user.changeNext_move(CLICK_CD_MELEE) + toggle_helmet_light(user) + to_chat(user, span_info("I spark [src] [on ? "on" : "off"].")) + +/obj/item/clothing/head/helmet/leather/shaman_hood/proc/toggle_helmet_light(mob/living/user) + on = !on + set_light_on(on) + if(on) + playsound(loc, 'sound/effects/hood_ignite.ogg', 100, TRUE) + do_sparks(2, FALSE, user) + else + playsound(loc, 'sound/misc/toggle_lamp.ogg', 100) + update_icon() + +/obj/item/clothing/head/helmet/leather/shaman_hood/update_icon() + if(adjustable == CADJUSTED) + ..() + return + if(on) + icon_state = "gronnfurhood_lit[lux_consumed ? "3" : "2"]" + item_state = "gronnfurhood_lit[lux_consumed ? "3" : "2"]" + else + icon_state = "gronnfurhood" + item_state = "gronnfurhood" + if(ishuman(loc)) + var/mob/living/carbon/human/H = loc + H.update_inv_head() + ..() + +/obj/item/clothing/head/helmet/leather/shaman_hood/attackby(obj/item/I, mob/user, params) + if(istype(I, /obj/item/reagent_containers/lux)) + if(adjustable == CADJUSTED) + to_chat(user, span_warning("The hood must be up for this to work!")) + return + if(lux_consumed) + to_chat(user, span_warning("It has already been infused.")) + return + to_chat(user, span_warning("I infuse the hood with the soul energies!")) + lux_consumed = TRUE + set_light_range_power_color(6, 2, lux_color) //The light is doubled + if(!on) + toggle_helmet_light(user) + else + update_icon() + qdel(I) + . = ..() + + +/obj/item/clothing/head/helmet/leather/shaman_hood/AdjustClothes(mob/user) + if(loc == user) + if(adjustable == CAN_CADJUST) + playsound(src, 'sound/foley/equip/rummaging-03.ogg', 50, TRUE) + if(on) + toggle_helmet_light(user) + if(toggle_icon_state) + icon_state = "gronnfurhood_down" + item_state = "gronnfurhood_down" + adjustable = CADJUSTED + flags_inv = null + body_parts_covered = null + else if(adjustable == CADJUSTED) + playsound(src, 'sound/foley/equip/cloak (3).ogg', 50, TRUE) + ResetAdjust(user) + if(ishuman(user)) + var/mob/living/carbon/H = user + H.update_inv_neck() + H.update_inv_head() + +/obj/item/clothing/head/helmet/leather/shaman_hood/ResetAdjust(mob/user) + . = ..() + if(on) + set_light_on(FALSE) + update_icon() + + +/obj/item/clothing/head/helmet/bascinet/atgervi/gronn + name = "osslandic skull-helm" + desc = "A helmet of hardened leather with a carefully preserved animal skull. \ + The skull integrated is a trophy of the bearer's great hunt, and a symbol of their reincarnation after death." + + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnleatherhelm" + item_state = "gronnleatherhelm" + block2add = null + body_parts_covered = HEAD|HAIR|EARS|EYES|NOSE + worn_x_dimension = 32 + worn_y_dimension = 32 + +/obj/item/clothing/head/helmet/bascinet/atgervi/gronn/ownel + name = "osslandic scout's helmet" + desc = "A full helmet that adequately protect the eyes and head; \ + The slits are decorated with a harsh gold dye - it is rumoured in Ossland to grant one the ability to see as keenly as The Hunter himself." + icon_state = "gronnhelm" + item_state = "gronnhelm" + +/obj/item/clothing/armor/brigandine/gronn + name = "osslandic chain hauberk" + desc = "A chain shirt of Osslandic design with a leather coat layered over, \ + offering additional protection and superior movement. It is often used by sea raiders." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnchain" + item_state = "gronnchain" + smeltresult = /obj/item/ingot/iron diff --git a/code/modules/clothing/pants/plate_legs.dm b/code/modules/clothing/pants/plate_legs.dm index 90aa89d7591..9a097e513ff 100644 --- a/code/modules/clothing/pants/plate_legs.dm +++ b/code/modules/clothing/pants/plate_legs.dm @@ -124,3 +124,13 @@ /obj/item/clothing/pants/platelegs/silver/Initialize(mapload) . = ..() enchant(/datum/enchantment/silver) + +//.............. Gronn Platelegs .................// + +/obj/item/clothing/pants/platelegs/iron/gronn + name = "osslandic iron chausses" + desc = "Iron chausses with an added layer of leather for comfort and padding. The knees are adorned with a skull-like shape, reminscent of the hunt." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnplatepants" + item_state = "gronnplatepants" diff --git a/code/modules/clothing/pants/trousers.dm b/code/modules/clothing/pants/trousers.dm index f80b4bfc8a9..76eb3dcad79 100644 --- a/code/modules/clothing/pants/trousers.dm +++ b/code/modules/clothing/pants/trousers.dm @@ -159,3 +159,23 @@ mob_overlay_icon = 'icons/roguetown/clothing/onmob/courtphys.dmi' detail_tag = "_detail" uses_lord_coloring = LORD_PRIMARY + +//gronn trou +/obj/item/clothing/pants/trou/leather/splint/gronn + name = "osslandic chain chausses" + desc = "A pair of chain-wrapped pants with a leather subligar, ensuring both protection and comfort." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnchainpants" + item_state = "gronnchainpants" + +/obj/item/clothing/pants/trou/leather/gronn + name = "osslandic fur pants" + desc = "A pair of hardened leather pants with bone reinforcements along the legs; \ + Those of Ossland adopt a design that offers superior protection against the blunted hits and slashing claws of beasts." + icon_state = "gronnleatherpants" + item_state = "gronnleatherpants" + armor = ARMOR_GRONN_LIGHT + max_integrity = ARMOR_INT_LEG_HARDLEATHER + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' diff --git a/code/modules/clothing/shoes/boots.dm b/code/modules/clothing/shoes/boots.dm index 93fa2927647..ff05622b09a 100644 --- a/code/modules/clothing/shoes/boots.dm +++ b/code/modules/clothing/shoes/boots.dm @@ -220,3 +220,15 @@ mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/evilarmor.dmi' sleeved = 'icons/roguetown/clothing/special/onmob/evilarmor.dmi' sellprice = 0 // See above comment + +//.............. Gronn Boots .................// + +/obj/item/clothing/shoes/boots/armor/gronn + name = "osslandic iron boots" + desc = "Thick iron boots, tied with a leather cord; protective and sturdy. \ + Osslandic legend tells of a great warrior who fought for aeons until a hero speared him through the foot. \ + The Northmen have since followed through by protecting their feet heavily." + icon = 'icons/roguetown/clothing/special/gronn.dmi' + mob_overlay_icon = 'icons/roguetown/clothing/special/onmob/gronn.dmi' + icon_state = "gronnplateboots" + item_state = "gronnplateboots" diff --git a/code/modules/jobs/job_types/other/gronn.dm b/code/modules/jobs/job_types/other/gronn.dm new file mode 100644 index 00000000000..3b1b52c9b18 --- /dev/null +++ b/code/modules/jobs/job_types/other/gronn.dm @@ -0,0 +1,258 @@ +//the mooks +/datum/job/advclass/mercenary/gronn + title = "Osslandic Privateer" + tutorial = "You are one of many upstarts from Ossland, who sailed from the coastal capital of the north to the southern beaches of the inland sea in search of a more... honest means of profit than the Sea Raiders of infamy." + allowed_sexes = list(MALE, FEMALE) + allowed_races = RACES_PLAYER_ALL + cmode_music = 'sound/music/combat_vagarian.ogg' + languages = list(/datum/language/gronnic) + pack_message = "This subclass has 2 loadouts with various stats, skills & equipment." + skills = list( + //Universal skills + /datum/skill/misc/reading = SKILL_LEVEL_NONE, + /datum/skill/misc/climbing = SKILL_LEVEL_APPRENTICE, + /datum/skill/craft/crafting = SKILL_LEVEL_NONE, + /datum/skill/craft/tanning = SKILL_LEVEL_NOVICE, + /datum/skill/labor/fishing = SKILL_LEVEL_NOVICE, + /datum/skill/misc/swimming = SKILL_LEVEL_JOURNEYMAN, //All of you can suck my dick they're SEAMEN + /datum/skill/craft/sewing = SKILL_LEVEL_NONE, + /datum/skill/craft/cooking = SKILL_LEVEL_NONE, + ) + + pack_title = "Available archetypes" + pack_message = "Choose your archetypes" + job_packs = list( + /datum/job_pack/gronn/grunt, + /datum/job_pack/gronn/ravager, + ) + +/datum/job_pack/gronn/grunt + name = "Leðurháls - Grunt" + pack_skills = list( + /datum/skill/combat/swords = 3, + /datum/skill/combat/shields = 2, + /datum/skill/combat/axesmaces = 1, + /datum/skill/combat/knives = 2, + /datum/skill/misc/athletics = 2, + /datum/skill/combat/wrestling = 2, + /datum/skill/combat/unarmed = 1, + ) + pack_stats = list( + STAT_KEY_STR = 2, + STAT_KEY_PER = 2, + STAT_KEY_CON = 2, + STAT_KEY_INT = -1, + ) + pack_contents = list( + /obj/item/storage/backpack/satchel/black = ITEM_SLOT_BACK_L, + /obj/item/storage/belt/leather = ITEM_SLOT_BELT, + /obj/item/storage/belt/pouch/coins/poor = ITEM_SLOT_BELT_L, + /obj/item/clothing/shoes/boots/leather/atgervi =ITEM_SLOT_SHOES, + /obj/item/clothing/head/helmet/bascinet/atgervi/gronn/ownel = ITEM_SLOT_HEAD, + /obj/item/clothing/gloves/chain/gronn = ITEM_SLOT_GLOVES, + /obj/item/clothing/armor/brigandine/gronn = ITEM_SLOT_ARMOR, + /obj/item/clothing/pants/trou/leather/splint/gronn = ITEM_SLOT_PANTS, + /obj/item/clothing/wrists/bracers/iron = ITEM_SLOT_WRISTS, + /obj/item/weapon/shield/tower/buckleriron = ITEM_SLOT_BACK_R, + /obj/item/weapon/scabbard/sword = ITEM_SLOT_BELT_R, + /obj/item/clothing/neck/coif = ITEM_SLOT_NECK, + ) + pack_backpack_contents = list( + /obj/item/flashlight/flare/torch/metal = 1, + /obj/item/key/mercenary = 1, + /obj/item/weapon/knife/hunting = 1, + /obj/item/weapon/scabbard/knife = 1, + ) + +/datum/job_pack/gronn/grunt/pick_pack(mob/living/carbon/human/picker) + . = ..() + picker.merctype = 1 + ADD_TRAIT(picker, TRAIT_MEDIUMARMOR, TRAIT_GENERIC) + picker.dna.species.soundpack_m = new /datum/voicepack/male/warrior() + + var/obj/item/weapon/sword/short/gronn/item = new() + picker.put_in_hands(item, forced = TRUE) //New heavy shortsword + +/datum/job_pack/gronn/ravager + name = "Skemmdarvargur - Ravager" + pack_skills = list( + /datum/skill/combat/axesmaces = 2, + /datum/skill/combat/whipsflails = 3, + /datum/skill/combat/shields = 3, + /datum/skill/combat/knives = 2, + /datum/skill/misc/athletics = 4, + /datum/skill/combat/wrestling = 3, + /datum/skill/combat/unarmed = 2, + /datum/skill/craft/traps = 3, + ) + pack_stats = list( + STAT_KEY_CON = 2, + STAT_KEY_SPD = 2, + ) + pack_contents = list( + /obj/item/storage/backpack/satchel/black = ITEM_SLOT_BACK_L, + /obj/item/storage/belt/leather = ITEM_SLOT_BELT, + /obj/item/storage/belt/pouch/coins/poor = ITEM_SLOT_BELT_L, + /obj/item/clothing/shoes/boots/leather/atgervi = ITEM_SLOT_SHOES, + /obj/item/clothing/head/helmet/bascinet/atgervi/gronn = ITEM_SLOT_HEAD, + /obj/item/clothing/gloves/angle/gronnfur = ITEM_SLOT_GLOVES, + /obj/item/clothing/armor/leather/heavy/gronn = ITEM_SLOT_ARMOR, + /obj/item/clothing/wrists/bracers/leather/masterwork = ITEM_SLOT_WRISTS, + /obj/item/clothing/pants/trou/leather/gronn = ITEM_SLOT_PANTS, + /obj/item/clothing/neck/coif = ITEM_SLOT_NECK, + ) + pack_backpack_contents = list( + /obj/item/flashlight/flare/torch/metal = 1, + /obj/item/key/mercenary = 1, + /obj/item/weapon/knife/hunting = 1, + /obj/item/weapon/scabbard/knife = 1, + ) + +/datum/job_pack/gronn/ravager/pick_pack(mob/living/carbon/human/picker) + . = ..() + picker.merctype = 1 + ADD_TRAIT(picker, TRAIT_DODGEEXPERT, TRAIT_GENERIC) + picker.dna.species.soundpack_m = new /datum/voicepack/male/evil() //Dodge builds are evil + + var/static/list/selectable = list( + "Handclaws" = /obj/item/weapon/handclaw/gronn, //You dont get the insane fucking steel or the special Iskarn ones + "Dual Handaxes" = /obj/item/weapon/axe/stone, + ) + + var/choice = picker.select_equippable(picker, selectable, message = "Choose your weapon.", title = "TAKE UP ARMS") + + if(!choice) + return + + switch(choice) + if("Handclaws") + picker.clamped_adjust_skillrank(/datum/skill/combat/unarmed, SKILL_LEVEL_JOURNEYMAN, SKILL_LEVEL_JOURNEYMAN, TRUE) + + if("Dual Handaxes") + picker.clamped_adjust_skillrank(/datum/skill/combat/axesmaces, SKILL_LEVEL_JOURNEYMAN, SKILL_LEVEL_JOURNEYMAN, TRUE) + ADD_TRAIT(picker, TRAIT_DUALWIELDER, TRAIT_GENERIC) + + //and another + var/obj/item/weapon/axe/stone/ax = new(picker.loc) + picker.equip_to_appropriate_slot(ax) + +//the scary mook +/datum/job/advclass/mercenary/gronnheavy + title = "Fjall Járnklæddur" + tutorial = "Even within the north, few bear witness to the Horned Visages of the Járnklæddur; Ironclad warriors who are thought to reincarnate into a divinely blessed species - a rarity among the northmen. " + allowed_sexes = list(MALE, FEMALE) + allowed_races = RACES_PLAYER_ALL + total_positions = 1 //Hopefully this works. + outfit = /datum/outfit/job/mercenary/gronnheavy + traits = list(TRAIT_HEAVYARMOR) + cmode_music = 'sound/music/combat_vagarian.ogg' + languages = list(/datum/language/gronnic) + jobstats = list( + STATKEY_WIL = 3, //People see big numbers and start shitting their pants, but their weighted stats are 7 and it's limited to one, singular slot. This is fine. + STATKEY_STR = 3, //TO WIELD THE MAUL. THEY CAN'T USE ANY OTHER WEAPON TYPE BUT MACES ANYWAY. + STATKEY_INT = 2, + STATKEY_CON = 3, + STATKEY_PER = -1, //CAN'T SEE SHIT OUTTA THIS THING!! + STATKEY_SPD = -3 //SLOW AND UNWIELDY + ) + skills = list( + /datum/skill/misc/reading = SKILL_LEVEL_NONE, + /datum/skill/misc/climbing = SKILL_LEVEL_APPRENTICE, + /datum/skill/craft/crafting = SKILL_LEVEL_NONE, + /datum/skill/craft/tanning = SKILL_LEVEL_NOVICE, + /datum/skill/labor/fishing = SKILL_LEVEL_NOVICE, + /datum/skill/misc/swimming = SKILL_LEVEL_JOURNEYMAN, //All of you can suck my dick they're SEAMEN + /datum/skill/craft/sewing = SKILL_LEVEL_NONE, + /datum/skill/craft/cooking = SKILL_LEVEL_NONE, + /datum/skill/combat/axesmaces = SKILL_LEVEL_JOURNEYMAN, + /datum/skill/combat/knives = SKILL_LEVEL_APPRENTICE, + /datum/skill/combat/wrestling = SKILL_LEVEL_APPRENTICE, + /datum/skill/combat/unarmed = SKILL_LEVEL_APPRENTICE, + /datum/skill/misc/athletics = SKILL_LEVEL_JOURNEYMAN, + ) + +/datum/outfit/job/mercenary/gronnheavy/pre_equip(mob/living/carbon/human/H) + ..() + H.dna.species.soundpack_m = new /datum/voicepack/male/evil() //It's fucking cool okay + shoes = /obj/item/clothing/shoes/boots/armor/gronn + head = /obj/item/clothing/head/helmet/heavy/bucket/gronn + gloves = /obj/item/clothing/gloves/plate/iron/gronn + armor = /obj/item/clothing/armor/plate/iron/gronn + cloak = /obj/item/clothing/cloak/volfmantle //Aura farming. + wrists = /obj/item/clothing/wrists/bracers/iron //Weakspot. + pants = /obj/item/clothing/pants/platelegs/iron/gronn + r_hand = /obj/item/weapon/mace/goden/maul + neck = /obj/item/clothing/neck/bevor/iron + backl = /obj/item/storage/backpack/satchel/black + belt = /obj/item/storage/belt/leather + beltl = /obj/item/storage/belt/pouch/coins/poor + + backpack_contents = list( + /obj/item/flashlight/flare/torch/metal = 1, + /obj/item/key/mercenary = 1, + /obj/item/weapon/knife/hunting = 1, + /obj/item/weapon/scabbard/knife = 1 + ) + H.merctype = 1 + +//the special mooks +/datum/job/advclass/mercenary/shaman + title = "Osslandic Cleric-Priest" + tutorial = "You are a cleric-priest of the northern hunters. You revere the four aspects mirrored in the ceremonial claws: The Traveler. The Hunter. The Woods. The Skull." + outfit = /datum/outfit/job/roguetown/mercenary/atgervishaman + allowed_sexes = list(MALE, FEMALE) + allowed_races = RACES_PLAYER_ALL + languages = list(/datum/language/gronnic) + cmode_music = 'sound/music/combat_shaman2.ogg' + traits = list(TRAIT_STRONGBITE, TRAIT_IGNOREDAMAGESLOWDOWN, TRAIT_NOPAINSTUN) + jobstats = list( + STATKEY_STR = 3, + STATKEY_CON = 2, + STATKEY_SPD = 1, + STATKEY_INT = -1, + STATKEY_PER = -1 + ) + skills = list( + /datum/skill/misc/swimming = SKILL_LEVEL_NOVICE, + /datum/skill/misc/climbing = SKILL_LEVEL_NOVICE, + /datum/skill/misc/sneaking = SKILL_LEVEL_NOVICE, + /datum/skill/combat/wrestling = SKILL_LEVEL_JOURNEYMAN, + /datum/skill/combat/unarmed = SKILL_LEVEL_JOURNEYMAN, + /datum/skill/misc/reading = SKILL_LEVEL_NOVICE, + /datum/skill/misc/athletics = SKILL_LEVEL_JOURNEYMAN, + /datum/skill/craft/tanning = SKILL_LEVEL_NOVICE, + /datum/skill/magic/holy = SKILL_LEVEL_APPRENTICE, + ) + +/datum/job/advclass/mercenary/shaman/after_spawn(mob/living/carbon/human/spawned, client/player_client) + . = ..() + var/datum/devotion/cleric = new /datum/devotion(spawned, spawned.patron) + cleric.grant_to(spawned) + cleric.make_shaman()//Capped to T2 miracles. + +/datum/outfit/job/roguetown/mercenary/atgervishaman/pre_equip(mob/living/carbon/human/H) + ..() + H.mind?.current.faction += "[H.name]_faction" + H.dna.species.soundpack_m = new /datum/voicepack/male/warrior() + + head = /obj/item/clothing/head/helmet/leather/shaman_hood + gloves = /obj/item/clothing/gloves/angle/gronnfur + armor = /obj/item/clothing/armor/leather/heavy/atgervi + shirt = /obj/item/clothing/shirt/undershirt + pants = /obj/item/clothing/pants/trou/leather/atgervi + wrists = /obj/item/clothing/wrists/bracers + shoes = /obj/item/clothing/shoes/boots/leather/atgervi + backr = /obj/item/storage/backpack/satchel/black + belt = /obj/item/storage/belt/leather + neck = /obj/item/storage/belt/pouch/coins/poor + beltl = /obj/item/flashlight/flare/torch + H.put_in_hands(new /obj/item/weapon/handclaw/gronn) + + backpack_contents = list( + /obj/item/key/mercenary = 1, + /obj/item/weapon/knife/hunting = 1, + /obj/item/weapon/scabbard/knife = 1, + /obj/item/storage/belt/pouch/coins/poor = 1, + ) + + H.merctype = 1 diff --git a/code/modules/language/gronnic.dm b/code/modules/language/gronnic.dm new file mode 100644 index 00000000000..8e5b8d11525 --- /dev/null +++ b/code/modules/language/gronnic.dm @@ -0,0 +1,20 @@ +// Language +/datum/language/gronnic + name = "Osslandic" + desc = "The harsh tongue of the Northern Highlands." + speech_verb = "remarks" + ask_verb = "inquires" + exclaim_verb = "asserts" + key = "n" + space_chance = 45 + default_priority = 90 + icon_state = "zalad" + spans = list(SPAN_GRONNIC) + syllables = list( + "to", "ost", "no", "na", "ni", "ko", "ne", "en", "po", "ra", "li", + "on", "ro", "er", "go", "ol", "al", "ot", "ov", "re", "vo", "ka", + "pro", "ta", "by", "el", "os", "yet", "la", "an", "or", "de", "ve", + "lo", "te", "byl", "štó", "eni", "ego", "astv", "pro", "ver", "ogo", "èto", + "pri", "tor", "est", "oto", "enn", "ova", "oro", "kak", "plu", "cha", "fö", "är", + "ha", "ti", "va", "ör", "för", "int", "til", "ans", "der", "ara", "han", "var", "det", + "och", "ing", "sam", "onne", "gen", "eska", "ig", "ende", "lig", "nin") diff --git a/code/modules/unit_tests/craftable_clothes.dm b/code/modules/unit_tests/craftable_clothes.dm index 2b614bddf4e..3db35bb3ff8 100644 --- a/code/modules/unit_tests/craftable_clothes.dm +++ b/code/modules/unit_tests/craftable_clothes.dm @@ -119,6 +119,7 @@ abstract types are automatically excluded. "royalknight", "warden", "sinistar", + "gronn", //pending further lore review. ) /datum/unit_test/craftable_clothes/Run() diff --git a/icons/roguetown/clothing/neck.dmi b/icons/roguetown/clothing/neck.dmi index 41db683b98b..b35acef9435 100644 Binary files a/icons/roguetown/clothing/neck.dmi and b/icons/roguetown/clothing/neck.dmi differ diff --git a/icons/roguetown/weapons/32/swords.dmi b/icons/roguetown/weapons/32/swords.dmi index 6e4ab547ce1..7d5e7cddc74 100644 Binary files a/icons/roguetown/weapons/32/swords.dmi and b/icons/roguetown/weapons/32/swords.dmi differ diff --git a/icons/roguetown/weapons/64/maces.dmi b/icons/roguetown/weapons/64/maces.dmi index 74eb5ada7f9..77bfccd4a18 100644 Binary files a/icons/roguetown/weapons/64/maces.dmi and b/icons/roguetown/weapons/64/maces.dmi differ diff --git a/interface/fonts/datums/gronn.dm b/interface/fonts/datums/gronn.dm new file mode 100644 index 00000000000..2901404a650 --- /dev/null +++ b/interface/fonts/datums/gronn.dm @@ -0,0 +1,3 @@ +/datum/font/gronnic + name = "Jorvik Informal" + font_family = 'interface/fonts/gronnic.ttf' diff --git a/interface/fonts/gronnic.ttf b/interface/fonts/gronnic.ttf new file mode 100644 index 00000000000..393c0a3a252 Binary files /dev/null and b/interface/fonts/gronnic.ttf differ diff --git a/interface/stylesheet.dm b/interface/stylesheet.dm index 9f5e33d1eff..dd6d0fae18f 100644 --- a/interface/stylesheet.dm +++ b/interface/stylesheet.dm @@ -110,6 +110,7 @@ h1.alert, h2.alert {color: #c9c1ba;font-family: Pterra, TrueType;} .hellspeak {font-family: "Nosfer", Pterra;} .undead {font-family: "FriskyVampire", Pterra;} .orc {font-family: "Thief by The Riddler", Pterra;} +.gronnic {font-family: "Jorvik Informal", Pterra;} .beast {font-family: "Thief by The Riddler", Pterra;} .deepspeak {font-family: "Underwater Love", Pterra;} diff --git a/sound/effects/hood_ignite.ogg b/sound/effects/hood_ignite.ogg new file mode 100644 index 00000000000..dda5429cb98 Binary files /dev/null and b/sound/effects/hood_ignite.ogg differ diff --git a/sound/foley/equip/cloak (3).ogg b/sound/foley/equip/cloak (3).ogg new file mode 100644 index 00000000000..a4cce413fe1 Binary files /dev/null and b/sound/foley/equip/cloak (3).ogg differ diff --git a/sound/misc/toggle_lamp.ogg b/sound/misc/toggle_lamp.ogg new file mode 100644 index 00000000000..d257c584233 Binary files /dev/null and b/sound/misc/toggle_lamp.ogg differ diff --git a/sound/music/combat_shaman2.ogg b/sound/music/combat_shaman2.ogg new file mode 100644 index 00000000000..b4b521b72ab Binary files /dev/null and b/sound/music/combat_shaman2.ogg differ diff --git a/sound/music/combat_vagarian.ogg b/sound/music/combat_vagarian.ogg new file mode 100644 index 00000000000..b78218f4c7e Binary files /dev/null and b/sound/music/combat_vagarian.ogg differ diff --git a/vanderlin.dme b/vanderlin.dme index d9b432065b9..9970494c979 100644 --- a/vanderlin.dme +++ b/vanderlin.dme @@ -1452,6 +1452,7 @@ #include "code\datums\status_effects\debuffs\drowsiness.dm" #include "code\datums\status_effects\debuffs\drugginess.dm" #include "code\datums\status_effects\debuffs\eye_blur.dm" +#include "code\datums\status_effects\debuffs\gronn.dm" #include "code\datums\status_effects\debuffs\jitteriness.dm" #include "code\datums\status_effects\debuffs\phobia.dm" #include "code\datums\status_effects\debuffs\silenced.dm" @@ -1787,6 +1788,7 @@ #include "code\game\objects\items\weapons\melee\blunt.dm" #include "code\game\objects\items\weapons\melee\flail.dm" #include "code\game\objects\items\weapons\melee\godweapons.dm" +#include "code\game\objects\items\weapons\melee\gronn.dm" #include "code\game\objects\items\weapons\melee\knives.dm" #include "code\game\objects\items\weapons\melee\polearms.dm" #include "code\game\objects\items\weapons\melee\special.dm" @@ -2906,6 +2908,7 @@ #include "code\modules\jobs\job_types\other\deathknight.dm" #include "code\modules\jobs\job_types\other\folkhero.dm" #include "code\modules\jobs\job_types\other\goblin.dm" +#include "code\modules\jobs\job_types\other\gronn.dm" #include "code\modules\jobs\job_types\other\mercenary.dm" #include "code\modules\jobs\job_types\other\rousman.dm" #include "code\modules\jobs\job_types\other\skeleton.dm" @@ -2992,6 +2995,7 @@ #include "code\modules\language\deepspeak.dm" #include "code\modules\language\dwarf.dm" #include "code\modules\language\elf.dm" +#include "code\modules\language\gronnic.dm" #include "code\modules\language\halfspeak.dm" #include "code\modules\language\hellspeak.dm" #include "code\modules\language\language.dm"