Skip to content

Lava Dwarves [DNM]#27155

Closed
MMMiracles wants to merge 49 commits intotgstation:masterfrom
MMMiracles:shortandstout
Closed

Lava Dwarves [DNM]#27155
MMMiracles wants to merge 49 commits intotgstation:masterfrom
MMMiracles:shortandstout

Conversation

@MMMiracles
Copy link
Copy Markdown
Contributor

@MMMiracles MMMiracles commented May 11, 2017

🆑 MMMiracles
add: Strange short humanoids have been spotted in the depths of Lavaland, drinking obscene amounts of alcohol and mining precious metals.
/:cl:

[why]: # dorf dorf dorf

Adds dwarves to lavaland. Dig rocks. Beat up the local fauna. Build a mighty fortress to fend off the natives. Drink obscene amounts of alcohol to survive.

Things To Do:

Code-wise

  • Dwarf species
  • Booze Requirement
  • Booze UI
  • Migration System
  • Blacksmith Tools
  • Brewing (thanks to Iamgoofball)

Map-wise

  • Ruin

Sprite-wise

  • Migration Portal

  • Dwarf legion (thanks to Mey Ha Zah)

  • Dwarf limbs (thanks to Militaires)

  • Dwarf clothes

  • Blacksmithing items

  • Brewing items

Pictures

Ruin
ruin1

Items
ruin2

@tgstation-server tgstation-server added Do Not Merge You must have really upset someone Map Edit Feature Exposes new bugs in interesting ways labels May 11, 2017
@KayeArray
Copy link
Copy Markdown

dorf fortress when

Comment thread code/game/turfs/simulated/minerals.dm Outdated
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
gets_drilled(user)
SSblackbox.add_details("pick_used_mining","[P.type]")
var/obj/item/organ/alcoholvessel/dwarf //check to see if the digger has the dwarf organ for increased mining speed
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

too snowflakey/better method? i dunno.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nah, checking for the organ makes sense

Copy link
Copy Markdown
Contributor

@RemieRichards RemieRichards May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's cleaner to put it on the species (Species.dig_speed), I would say, then we can have other species dig quicker too (one of the golem types perhaps?)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yeah but adding even more species vars is excessive

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the organ system is a superior way to distinguish species personally as it has more interaction depth and potential

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@optimumtact so you'd rather access a dwarf only organ here? as opposed to a generic variable?

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Honestly this check is a mess

Comment thread code/_onclick/hud/human.dm Outdated
name = "alcohol stored"
screen_loc = ui_alcohol_amount

/obj/screen/dwarf/alcohol_display/proc/update(mob/living/carbon/human/usr)
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

not actually sure how to call this from the organ, seems to work if i call it in-game via vv menu, though.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might want to add this to Life() or something.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It would go in the organ's on_life(), not mob Life()

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You cannot name the var usr

owner.adjustFireLoss(-heal_amt)
owner.adjustOxyLoss(-heal_amt)
owner.adjustCloneLoss(-heal_amt)
if(stored_alcohol < 150 > 100 && prob(5))
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

better way to do this without it being spammy?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

it might work with 100 < alcohol < 150

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

or maybe alcohol in 100 to 150 but i'm not too sure

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can you tie it to the alcohol display so like the border or something changes colors [think hunger indicator but with alcohol]

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could pretty easily do that, if I can figure out how to get the organ to show the UI in the first place.

Copy link
Copy Markdown
Contributor

@FantasticFwoosh FantasticFwoosh May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Having it on the status bar or little booze counter (ripping off the aliens counter) could work for a more on screen presence.

What if the user is colorblind?

Copy link
Copy Markdown
Contributor

@RandomMarine RandomMarine May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

https://pastebin.com/raw/484ZA43e

I just bullshitted up a non-RNG non-spammy way to do this that may or may not be up to code standards. Honk.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

100 < stored_alcohol < 150

would be preferred

Comment thread tgstation.dme Outdated
// BEGIN_INCLUDE
#include "_maps\basemap.dm"
#include "_maps\loadallmaps.dm"
#include "_maps\runtimestation.dm"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[DNM]

Copy link
Copy Markdown
Member

@Cyberboss Cyberboss May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should never have to uncheck loadallmaps.dm m9

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems to speed up compile/startup time for me.

skinned_type = /obj/item/stack/sheet/animalhide/human
brutemod = 0.9
coldmod = 0.85
punchdamagehigh = 11
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this also means higher stunchance, intended?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dwarves seem like tough little fuckers, so it seemed appropriate that they hit harder.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fistfighting amongst dwarfs is very dangerous, good change

/datum/species/dwarf/on_species_loss(mob/living/carbon/C, datum/species/old_species)
..()
var/mob/living/carbon/human/H = C
H.resize = 1.25
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Did you test dwarfing -> dwarf mutation -> undwarf -> unmutate? I feel like there may be some resizing issues

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm working on getting a new set of limbs for dwarves entirely instead of using resize, so this is just temporary until then. Worst comes and I can't get those, I'll just add a check in the dwarfism mutation for the species.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

They should probably have morphology checks in that case so that non-dwarves aren't stuck with stubby dwarf legs (unless there's a way to somehow subtract the difference) a similar check is attached to monkeys to stop implanting their wrong proportionate bodies onto humans.


/obj/item/organ/alcoholvessel/prepare_eat()
var/obj/S = ..()
S.reagents.add_reagent("ethonal", stored_alcohol/10)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ethonal

@jughu
Copy link
Copy Markdown
Contributor

jughu commented May 12, 2017

Dwarves vs somewhat orcs (ashwalkers) vs ELVES??(SPOILERS???)

@Razharas
Copy link
Copy Markdown
Contributor

Surely you mean goblins and not orcs

@Kromgar
Copy link
Copy Markdown
Contributor

Kromgar commented May 12, 2017

I swear to fucking god if lava dwarves can not build a fuck the world device i will be very disappointed. Also they need their own speites rather than shrunkrn humans. Also they are all named Urist.

Have dwarves be able to make adamantine... wait you should add adamantine spires

@fludd12
Copy link
Copy Markdown
Contributor

fludd12 commented May 12, 2017

Surely blacksmithing and brewing will be added to the station, too, right?

...Right?

Comment thread code/game/turfs/simulated/minerals.dm Outdated
if(ismineralturf(src))
to_chat(user, "<span class='notice'>You finish cutting into the rock.</span>")
gets_drilled(user)
SSblackbox.add_details("pick_used_mining","[P.type]")
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest you just add something like var/adjusted_digspeed = (user.getorganslot("dwarf_organ") ? (P.digspeed * 0.5) : P.digspeed) and then just change the do_after. You then will not have to duplicate the check, and I don't see why you defined dwarf as an organ, I think it could have just been an ordinary variable, but maybe I am wrong.

Comment thread code/_onclick/hud/human.dm Outdated
name = "alcohol stored"
screen_loc = ui_alcohol_amount

/obj/screen/dwarf/alcohol_display/proc/update(mob/living/carbon/human/usr)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You might want to add this to Life() or something.

@@ -0,0 +1,38 @@
/obj/item/organ/alcoholvessel //essentially the opposite of the xeno's plasmavessel, but with alcohol
name = "alcoholvessel"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You definitely want to add this to regenerate_organs()

@Metallusions
Copy link
Copy Markdown

I certainly hope they don't hunt down and kill free golems for their precious adamantine or anything. That would be just terrible.

...For the golems.

@ShadowDeath6
Copy link
Copy Markdown

aside from top quality references, what will encourage players to pick dwarves over golems since they fill an extremely similar niche? (mining / building new items from said mined material)

@FantasticFwoosh
Copy link
Copy Markdown
Contributor

FantasticFwoosh commented May 12, 2017

Dwarves being a lower tech intermediary i guess, a bit more strapped for materials than the golems who also have the benefit of RnD material duplication & parts. If dwarves & golems can work peacefully it could probably work out well for them both.

See references to them forging new objects.

Pod plant people are probably elves in this respect, growing the stuff, got a lot of brewables to take or trade for, but are very dangerous with the plant varieties (especially by just being shot dead by gatfruit users)

invisibility = 0
maptext = "<div align='center' valign='middle' style='position:relative; top:0px; left:6px'><font color='magenta'>[round(dwarf.stored_alcohol)]</font></div>"

/obj/screen/dwarf/alcohol_display/proc/remove()
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

hide(), surely?

/obj/screen/dwarf/alcohol_display/proc/update(mob/living/carbon/human/usr)
var/mob/living/carbon/human/H = usr
var/obj/item/organ/alcoholvessel/dwarf
dwarf = H.getorganslot("dwarf_organ")
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ideally this HUD element would only be created if the person was a dwarf (in the organ's Insert() proc)

Comment thread config/game_options.txt Outdated
ROUNDSTART_RACES lizard
#ROUNDSTART_RACES fly
ROUNDSTART_RACES plasmaman
ROUNDSTART_RACES dwarf
Copy link
Copy Markdown
Contributor

@FantasticFwoosh FantasticFwoosh May 12, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remember to omit this please

@AlexCrimson
Copy link
Copy Markdown

Can we roleplay as Chaos Dwarves and enslave the Miners/filthy Ash Liggers?

@FantasticFwoosh
Copy link
Copy Markdown
Contributor

FantasticFwoosh commented May 12, 2017

Id be down for that, i think its no holds barred really about what you want to do with RP, you're just a dwarf from a extranous ASCII dimension which is notorious for having lots of really screwed up people & shit in it.

This is a engraving of a dog, it is on fire.

Dwarves should have a chisel to leave messages & picture graffiti behind with.

@Dorsisdwarf
Copy link
Copy Markdown
Contributor

There should be a goblin dark fortress ruin which only spawns if the dwarf ruin does, and then sends tunneling simplemobs after the dwarves

@FantasticFwoosh
Copy link
Copy Markdown
Contributor

FantasticFwoosh commented May 12, 2017

I think ashwalkers suffice the nessecary low tech & envious antagonist to dwarves between fighting the dwarves might pick versus the station or other mining lavaland roles. It'd be interesting to have a Master - Slave ghost role though, with one non-antag true demon ruling over some underlings or some kind of arrangement like that.

When did we become a DFortress tribute game?

@tgstation-server tgstation-server removed the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label May 23, 2017
Comment thread code/modules/clothing/clothing.dm Outdated
// THESE OVERRIDE THE HIDEHAIR FLAGS
var/dynamic_hair_suffix = ""//head > mask for head hair
var/dynamic_fhair_suffix = ""//mask > head for facial hair
var/greyscale = FALSE
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

dude you removed all the stuff to make sure that armors reflect their material color

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was under the assumption that equipping it was enough to make sure the neccesary icon updates worked and gave it the proper coloring, at least from what I understood from Remie's earlier comment.

Copy link
Copy Markdown
Contributor

@RemieRichards RemieRichards May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, clothing images inherit the .color of the item they came from, so if the inventory item is greyscale (it should be), then the worn will automatically be too.

result = /obj/item/clothing/head/helmet/dwarf
reqs = list(/obj/item/weapon/grown/log = 1,
/obj/item/weapon/mold_result/helmet_plating = 1)
reqs = list(/obj/item/stack/sheet/leather = 2,
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do they even have access to leather?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I was wrong in assuming cat's butcher_result gave their respective hide, but that's a super easy fix so technically they will as soon as I add that. They have the puddle for wetting and can make a drying rack so leather should be more than feasible as long as they don't kill off all their livestock.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lmao is that the point of the catsplosion

ahahahaha

mineralType = /obj/item/stack/sheet/mineral/clay
spreadChance = 20
spread = 1
scan_state = "rock_clay"
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

scan states need to go in ore_visuals.dmi now, and they must be centered.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok

var/siemens_coeff = 1 //base electrocution coefficient
var/damage_overlay_type = "human" //what kind of damage overlays (if any) appear on our species when wounded?
var/fixed_mut_color = "" //to use MUTCOLOR with a fixed color that's independent of dna.feature["mcolor"]
var/list/species_clothing_blacklist //If you're in this list, you can't wear it
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

these don't go on the species, they go on the clothing (like I told you too, and like you actually did (??))

heat_protection = CHEST|GROIN|ARMS
armor = list(melee = 50, bullet = 10, laser = 10, energy = 10, bomb = 0, bio = 0, rad = 0, fire = 80, acid = 80)
strip_delay = 80
put_on_delay = 60
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

all of these dwarf clothes need:
species_whitelist = list("dwarf")
so that they're dwarf only.

P.playDigSound()

if(do_after(user,P.digspeed, target = src))
var/adjusted_digspeed = (user.getorganslot("dwarf_organ") ? (P.digspeed * 0.5) : P.digspeed)
Copy link
Copy Markdown
Contributor

@RemieRichards RemieRichards May 24, 2017

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Still not happy with this.
Prefer some kind of proc on the mob, that by default returns 0, then you can do:

var/udigspeed = user.get_digspeed() //Eg: 0.5, 1, 2
var/adjusted_digspeed = udigspeed ? (P.digspeed * udigspeed) : P.digspeed

The human version of this proc can then check for the dwarf organ.

// THESE OVERRIDE THE HIDEHAIR FLAGS
var/dynamic_hair_suffix = ""//head > mask for head hair
var/dynamic_fhair_suffix = ""//mask > head for facial hair
var/my_clothing_icon = 'icons/mob/uniform.dmi'
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't need to exist, it was only for greyscaling which is already handled automatically by human update_icons() code.

@FantasticFwoosh
Copy link
Copy Markdown
Contributor

Remove the colon grass please from floors since we are not using it, unless you have a forseeable use for it in future it should probably be shelved. Also delivered more sprites so expect a commit at sometime to break everything once again.

@lzimann lzimann added the Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts label May 24, 2017
@optimumtact
Copy link
Copy Markdown
Member

@silicons
Copy link
Copy Markdown
Contributor

include me in the screenshot

@optimumtact optimumtact reopened this May 26, 2017
@optimumtact optimumtact reopened this May 26, 2017
@optimumtact optimumtact reopened this May 26, 2017
@silicons
Copy link
Copy Markdown
Contributor

yes

@RandomMarine
Copy link
Copy Markdown
Contributor

I think goofy references fit the overall game theme better than super serious tactical military operators operating operationally in fields of operations.

@Bawhoppen
Copy link
Copy Markdown
Contributor

@RandomMarine there's a time for everything and a place for it all to fit in this game,
also funny seeing you say that considering your username

@Steelpoint
Copy link
Copy Markdown
Contributor

Steelpoint commented May 26, 2017

I thought one of the draws to SS13 is the stark contrast between pretty sane, serious things and the wacky and nonsensical.

@TGxSingularity
Copy link
Copy Markdown

Adamantine for mat 8 seems a little too much.

@Iamgoofball
Copy link
Copy Markdown
Member

will fix all this tonight

@MMMiracles
Copy link
Copy Markdown
Contributor Author

Busy working on other things so @Iamgoofball is taking the reins on this at #27761

@MMMiracles MMMiracles closed this May 27, 2017
@Iamgoofball
Copy link
Copy Markdown
Member

can you send me a copy of the OP from this

@KayeArray
Copy link
Copy Markdown

DORF NOOOOOOOO

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Do Not Merge You must have really upset someone Feature Exposes new bugs in interesting ways Merge Conflict Adding upstream files to your repo via drag and drop won't resolve conflicts

Projects

None yet

Development

Successfully merging this pull request may close these issues.