Bay 12 Games Forum

Please login or register.

Login with username, password and session length
Advanced search  

Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.

Topics - Strik3r

Pages: [1]
1
DF Modding / Starting with nothing in fortress mode?
« on: February 07, 2022, 11:42:48 am »
Hello, this is a question for those more familiar with fortress mode and reaction modding than i am.

How might one go about making a fortress startable with absolutely nothing? What means of gathering resources are available without access to any tools or workshops which require materials to build?
A custom, no-cost workshop could be made to run reactions to potentially gather resources from the environment, but to what extent can that be done; how much can custom workshop reactions interact with the environment? Just like gathering webs, for example. I think it's possible to gather webs using a custom reaction, IIRC.

Likewise, does anyone know of any mods that might have tackled this problem before me?

In addition, this thread should serve as a hub of discussion regarding this topic.

2
Mod Releases / [0.47.X]Hand of Darkness (v0.9)
« on: February 05, 2020, 06:46:59 pm »
THE
HAND OF DARKNESS
... Passed over the land, leaving naught but death and dread in its wake...
(Version 0.9, for Dwarf Fortress version 0.47.1 and up.)

First of all, thank you for taking a look at my mod.
Hi, this is my first released Dwarf Fortress mod, so bear with me there may be some rough spots.
With that said, this is actually a rather small and simple mod that i made of almost exclusively 0.47 features, so needless to say, it won't work on 0.44.12.

I intended this to serve as a sort of an example mod for 0.47 modding features while still being a mod that actually adds some fun gameplay. With that in mind, i wanted to get the mod out relatively quickly, so a caveat of that fast release cycle is there's been very little testing, aside from basic Arena Mode combat tests. So it's highly probable that the balance is way off for some things. If you find something in play that is totally out of whack, please tell me so that i may fix it.

I'm not about to make you read through a lengthy text if you just want the mod, you can get it from here:

[Download Hand of Darkness(v0.9) from DFFD]
The best way to support this mod is on my Patre... nah i'm just kidding, i don't have one, never will. But for real,
The best way to support this mod and it's further development is to show interest in this mod, download it, play with it, give me feedback, ideas and report bugs.

Installation:
  • Download the zip.
  • Open the zip.
  • Open the "(47.X)Hand of Darkness V0.9" folder.
  • Copy the contents of the folder directly into your Dwarf Fortress directory.(the same folder where Dwarf Fortress.exe is)

Note, The only reason you can get a prompt to overwrite files is if you're updating from a prior version of this mod. This mod does not overwrite vanilla files.

Uninstallation:
All this mod's files are prefixed with "HoD" so just delete all of them that you find in either the "raw" or "data" folders.
A readme file is included with an overview of the folder structure.

Contents

So, what's this mod actually about? It's a creature mod consisting of original-ish and somewhat tougher than usual monsters, with the theme of DAAAARKNESSsssss
That is, dark creatures, creatures in dark places and in some cases, creatures with dark thoughts. It's mostly the Fantasy kind of "Darkness", rather than "Grimdark".

Here's what the mod contains:

Spoiler: Civs (click to show/hide)

Spoiler: Creatures (click to show/hide)

Spoiler: other (click to show/hide)

I will admit, the mod is a bit bare-bones right now...

Compatibility

DARK_EVIL will use creatures with EVIL_PET and EVIL_PET_ALWAYS creature classes as pets. So you can add one of those classes to any creature if you want them to be able to be used by my Dark Evil civ.
Beyond that, the only possible compatibility conflict may happen if my mod and someone else's uses the same internal name for a creature or whatever.

Recent changes

This is the first release.

Known issues

Immobile summoned creatures appear to be kind of... sluggish in Dwarf Mode. They don't use their interactions as frequently as they should.

Future plans

Experimenting with experiments.
Another creature for Dark evil.
Various refinements.
Porting GoD.
some references to other games.
More original creatures

Permissions
I have to include this section, otherwise people will think that i disallow them from doing stuff with this mod. Quite the contrary, in fact:

I encourage you to put this mod in modpacks, modify it, whatever, you don't need my permission. Attribution would be nice, as would notifying me if you include the mod elsewhere, if only so that i can track this mod's travel/reach.
The only thing i'd ask that you NOT do, is claim my mod as your own.

3
DF Suggestions / Syringes and Syndrome hints
« on: December 19, 2019, 06:28:52 am »
Presently it is very difficult to use syndrome-bearing materials for anything due to the inability to coat weaponry or deploy such materials in a useful way, therefore in this post i suggest a possibly easier to implement alternative: Syringes and other devices that can deliver injection-based syndromes. In addition to that: AI hints for syndromes to help them use syndrome-bearing materials.

Syringes themselves are of course items and thus very easy to add, and TOOLs can already contain materials, this suggestion aims to extend this functionality to weapons too, as well as the addition of syringe functionality and tokens to enable this for attacks. There are two new tokens, to be put in weapon attacks:

  • [INJECTS_CONTENT], which will, as the token suggests, inject any contained material into the bloodstream and trigger any [SYN_INJECTED] syndromes.
  • [DRAW_BLOOD], which will behave as the equivalent attack token for creatures does, except it draws as much blood as possible to fill up the item's container.
Neither of these tags work if the item in question lacks a container. Injection will also not work if the contents are logically not-injectable(such as actual items). Drawing blood does not work if the item already contains something.

The possibilites this would open up are quite varied: Syringes, Injector Daggers and Arrows/Bolts come to mind, all of which can of course be put into weapon traps.
Are syringes compatible with DF's world and time period...? Yep, primitive syringes existed a few hundred years before that, and these are dwarves we're talking about, surely they must have come up with the idea? Not to mention, a syringe isn't exactly complicated, as far as devices go.

AI should not be afraid to use attacks that have the INJECTS_CONTENT tag with a TOOL that contains a beneficial syndrome-bearing material in it on friendlies.

How do you get a material in a thing? That is incredibly easy using a simple reaction.



The second and the more complicated part of this suggestion deals with how the AI sees syndromes and the materials that contain them.
In order to facilitate AI's use of syndromes i suggest new hardcoded syndrome category tokens that are tied to AI behavior to use these materials in the right way.

The main tag is [SYN_USE:X(:X)...] Where X is a sub-token that determines the what AI will use this syndrome for. Multiple sub-tokens may be specified in a single SYN_USE token.

A few proposed sub-tokens(they don't have to use these names of course):

  • HEAL: AI will consider this syndrome to help with healing somehow.
  • LETHAL: AI will consider this syndrome as one to invariably result in death.
  • BUFF_GENERAL: This syndrome somehow provides a general buff not specifically related to fighting.
  • BUFF_COMBAT: This syndrome helps in combat.
  • DEBUFF_GENERAL, DEBUFF_COMBAT: As above, except it the syndrome harms the functioning of a creature instead of helping it.
  • TRANSFORM_GOOD, TRANSFORM_BAD: This syndrome transforms a creature. Either to its benefit or not, respectively.

The SYN_USE tag propagates upwards through to materials, attacks and interactions. So all of the above will apply to AI's use of these things.

The syndrome category system also has a few benefits elsewhere:
For interactions, this syndrome category system can be used to partially replace the clunky AI hint system there.
For procgen syndromes, they can now be constructed backward: Start with a category then add appropriate effects. This will allow for more varied procgen syndromes if AI knows how to use them.

As an aside, blood should have a LETHAL syndrome as well as a special syndrome tag such as SPECIAL_BLOOD that will only trigger the syndrome if it is injected into anyone else other than the creature from whom the blood came.
Spoiler (click to show/hide)

4
DF Modding / The power of NONE
« on: October 20, 2019, 05:57:48 am »
So, i was screwing around with color patterns and discovered that

Code: [Select]
[COLOR_PATTERN:PATTERN_NONE]
[PATTERN:STRIPES]
[CP_COLOR:NONE]
Will not crash DF but will actually produce a text such as, and i quote: "His tail fur is striped " in the creature description and

Code: [Select]
[COLOR_PATTERN:PATTERN_NONE]
[PATTERN:NONE]
[CP_COLOR:NONE]
Will produce NO TEXT(yes, literally nothing) in the creature description. The only side effect of this is the errorlog spam and Dwarf Portrait crashing when attempting to draw a creature wth such a pattern.

Also DF is totally fine with a pattern with only a single CP_COLOR such as:
Code: [Select]
[COLOR_PATTERN:STRIPES_WHITE]
[PATTERN:STRIPES]
[CP_COLOR:WHITE]
Which will produce "His tail fur is striped white" for example, in the creature description.

So it seems that DF handles bad tokens pretty gracefully. Just the fact alone that this works in patterns already has quite a few applications but it makes me wonder whether there are other unexpected tokens where something like this works...

Spoiler (click to show/hide)

5
DF Suggestions / Advanced Weapons
« on: September 24, 2019, 06:41:39 am »
This is a suggestion for some new weapon related tags and behaviours as well the associated functionality in the code.

[THROWN] - This tag marks a weapon as a weapon suitable for throwing.
    Melee weapon token
    • This is mostly a AI tag, to indicate a thrown weapon.
      • AI will only throw the weapon if it has a backup weapon
      • If the AI has multiple throwable weapons, it will equip another throwable weapon after throwing it, equiping a non-throwable weapon last.

[RETRIVEABLE:X] Makes this weapon a melee/ranged hybrid weapon that can be thrown with a limited range and then retrieved via rope/chain etc.
    Melee weapon token
    • Implies THROWN
    • X is the range of the weapon, in tiles.
    • AI will throw these weapons if they are within range.
    • The weapon will be retrieved automatically unless its stuck in the target, in which case it'll need to be pulled out, which will also retrieve it.

[GRAB:X] -  These attacks will have a X percentage chance to "wrap around" the targeted BP if the attack hits.
    Attack token(This token goes on a weapon's attack rather than the weapon itself)
    • If the attack is bladed, the weapon will cut into the BP
    • Useful for non-lethal/capture purposes.
    • If a weapon with any GRAB tokens is thrown, the weapon will "wrap around" the hit BP.
      • The (highest/random/average)? GRAB chance will be used for this, should the weapon have multiple attacks with GRAB set.
    • If the thrown weapon in question is [RETRIVEABLE] then the attacker can pull the target back.
      • In adventure mode, this is done the same way as pulling out a stuck weapon
      • How many tiles the target gets moved per "Pull"(if at all) heavily depends on the difference in size between the attacker and the target.
    • EDIT: Targets hit by a GRAB attack will not be "propelled away" if hit with sufficent force but will be knocked down and dazed instead.

[RANGE:X] - Sets the max range for this attack, X is the range in tiles.
    Attack token
    • If you've played Crypt of the Necrodancer or RuneScape then you know how this works.
    • Attacks with at least 2 tiles of range can pass through fortifications
    • If any attack on the weapon has at least 2 tiles of range, the AI will try to stay at least a tile away from their target but will only move if it cannot attack with any attack on its weapon.
    • If the attack in question also has GRAB the target will be kept at the maximum range of the attack.
    • Defaults to 1

[MIN_RANGE:X] Sets the minimum range for this attack, in tiles.
    Attack token
    • 0 allows targets on the same tile as the attacker to be attacked
    • 1 means that the attacker can't be straight on top of the target.
    • 2,3,4,.. The target must be at least this far to be able to be attacked.
    • Defaults to 0

[UNBLOCKABLE:X] Decreases the chance to block this attack by X percent of the inital block chance.
    Attack token

6
DF Suggestions / Innate containers and glands
« on: December 26, 2018, 10:03:17 am »
This idea was partially born out of the Stomach capacity, metabolism, and digestion thread. Also inspired in part by Rain World.
In real life, creatures have a variety of organs which are used for storage, but this is something that is not repersented at all in DF.

A great example of this are kangaroos, which in DF lack their distinctive pouches.
Similarly, stomachs lack any function whatsoever in DF, in fact a creature can lose it in combat and they'll still be able to eat just fine.
In addition there are a number of other organs which either do nothing or are absent entirely.

So i wanted to suggest the addition of several new tags for bodyparts and the associated functionality inside the code to allow creatures to have innate containers:

[CONTAINER:X]: Makes the BP act as a innate container, 'X' is the maximum volume of the container as a percentage of the volume of the BP itself.
  • 'X' can be higher than 100, to simulate distension of the organ. Most organs will have above 100% max volume.
  • Anything stored in any of these innate containers adds the items' weight to the creature. Insignificant detail in most cases, critical in some.
  • If the BP is also [INTERNAL], then these containers are not accessible and can not have items put into them directly, it is also by default considered to be not ventilated, I.E. any living creatures ending up in there will likely suffocate.
  • If the BP is not [INTERNAL], then items can be put into them, and it is also considered to be [VENTILATED] and living beings can be put there safely. These bodyparts can have things put into them directly.
  • If the creature secretes something from a BP with [CONTAINER], it is put into the the BP's container on secretion. Useful for glands(Will cover this soon)

[STOMACH]: This tag marks the BP as a stomach, with everything it entails. can have multiple stomachs. Does not require nor imply [CONTAINER].
  • Is not needed for the creature to be able to eat, this tag makes just makes it possible for the consumption of food to be disabled.
  • IF a BP with [STOMACH] also has [CONTAINER], then eating anything will cause it to end up in here. If multiple BP's with [STOMACH] and [CONTAINER] are present, then it is possible to choose which stomach eaten things end up in.
  • Having both at least one BP with both [STOMACH] and [CONTAINER], then the creature uses slightly altered food mechanics:
    • Any eaten food will reside in the stomach for a while before it is destroyed
      • Inedible items will not be destroyed. Vomiting will bring these items back up
      • Living beings are considered edible.
         
    • How much food a creature can consume is determined by how much empty space there is in the stomach.
  • If the creature does not have any BP's with both [STOMACH] and [CONTAINER], then current food mechanics are used.
  • If all BP's with [STOMACH] are disabled, the creature can no longer eat food and will starve.

[VENTILATED]: Makes it possible to store living beings in [INTERNAL] [CONTAINER]s without them suffocating.

[PATHWAY:X:Y]: Grants a [CONTAINER] BP a pathway to another BP and the possiblity to move items between them.
  • X is either BY_TOKEN, BY_TYPE or BY_CATEGORY.
  • Y is either the name of a BP(BY_TOKEN), a type of BP(BY_TYPE) or a BP category(BY_CATEGORY)
  • [PATHWAY:BY_TYPE:MOUTH] and equivalents in particular make it possible to select it as a destination for swallowed items as if it was a stomach.

[GLAND]: Marks the BP as a gland, and makes the game track it as such.
  • If the creature has at least one [CONTAINER] [GLAND] then any interactions which use a material will attempt to draw a corresponding amount of the material from a gland storing that material through a [PATHWAY], provided there is enough.
  • If there isn't enough material or the gland is disabled, the interaction will be 'dry' and will not inject or launch the specified material.
  • The main use for this is more realistic handling of venomous creatures, as such creatures realistically do not have infinite amounts of venom.

Other mechanics changes:
Allow swallowing of anything(provided its small enough) in Adventure mode, including vermin and creatures.
   Eating of living creatures is done through a special attack, only possible if the attacker is much larger than their target, for example a dragon eating a dwarf.
   [INTELLIGENT] creatures willing to eat vermin (such as creatures with [HUNTS_VERMIN] and/or [GOBBLE_VERMIN_CLASS]) will always do so in Fortress mode.

Clarifications:
Creatures will typically not use their stomach as a container, so there is no worry about dwarves swallowing socks constantly, then starving because there aint enough room left in there for food.
Though kangaroo people anyone with an external [CONTAINER] will use it for storing random crap, unless its already occupied(would need additional programming to make creatures with safe [CONTAINER]s put their young there(and not eat them))
Yes, swallowing anything putting anything with an edge in any innate contaier will cut you.
Handling of happens when a creature or even the player is eaten alive is beyond the scope of this thread.

Pages: [1]