Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Initial Robofac #30527

Closed
wants to merge 46 commits into from
Closed

Conversation

John-Candlebury
Copy link
Member

@John-Candlebury John-Candlebury commented May 15, 2019

Summary

SUMMARY: Content "Adds the Robofac"

Purpose of change

This is the initial work on adding the robofac, as mentioned on #27479

What this PR adds is still a bit bare bones, contains only a single trader, a single mission and a basic, small location (of which the underground is still not done completely) however I think its enough to start with.

Describe the solution

So lets talk about the lore this PR tentatively adds to the Game:

The in-game name for robofac is "Hub 01", after the lab its headquartered on. Hub 01 was the easternmost regional hub of the pre-cataclysm Melchior system. Since it was mostly dedicated to Robotics/Computer-Science and executive work, instead of the more dangerous blob or dimensional research of other labs. Hub 01 survived through the cataclysm event without completely collapsing, but this also means that Hub doesnt actually have (at least initial) access to mutagen, teleportation, cloning and other neat stuff other labs have, the player will have to get access to these by claiming other labs in name of the Hub.

Since the Hub has sufficient resources for short-midterm survival, the remaining staff is very isolationist and distrustful to outsiders. Their interactions are mostly limited to trading lab trash and surplus weapons with survivors that make a very very good argument, or hiring people to do dirty surface based work their own robots cant do. Members of the hub also show their surface paranoia in the few cases when they leave the lab. Their standard surface outfit is a unnecessary hazmat uniform.

This attitude is reflected in the first mission. They interact with you only through a door intercom (after forbidding you access to their lab) and hire you to find what happened to a prototype robot they were modifying to scavenge and fight surface threats. The great reward for surviving this jabberwock tier foe is trade access, and a debt in your favor of 5 dollars. Initially, the Hub is only interested in using people from the surface and their first handful of missions will reflect this, with the player being kept outside of the lab, and being given meager rewards for their dangerous work.

Initially, its not obvious that a mayor player within the Hub is actually the AI Melchior IV. Initially Melchior might even be malfunctioning and bringing it online will require the player to clear a dangerous part of the lab, that is dimensionally unstable (AKA full of Nether foes) due to Melchior's multidimensional OS.


Hopefully this initial conception aligns with we want to accomplish with the robofac.

John-Candlebury and others added 17 commits May 11, 2019 08:59
Fixes the inconsistent volume of the plastic bowl!
I'm offended, really.
Water doesn't even compress, reeeee.
when a vehicle part collides with a creature while the creature is
on a water tile, displace the creature 2 tiles on a 45 degree
angle away from the vehicle's direction of movement until the
creature is no longer colliding with the vehicle and the creature
is not in the same tile as any other creature.
Only friendly monsters passive ride in vehicles.  Hostile
monsters will continue moving around the vehicle.
It doesn't matter if the player has bio_painkiller if the patient doesn't.
Now that NPCs will be consuming power, it helps if you can check how
much power they actually have.
Don't print messages for NPCs.
Add NPC AI rules for CBM power usage.  This just adds the rule
variables and saves and loads them; it doesn't do anything with
them.
NPCs don't access bionics by selecting a particular bionic from a list of
bionics.  Instead, they check to see if they have a particular bionic and
find its place in their list of bionics.  Add 3 utility functions for
activating, deactivating, and using bionics.

Activate returns true if the bionic became powered in the call.  Use
returns true if the bionic became or was already powered in the call.
NPCs can now actively control bionic reactors, furnaces, ethanol burners,
and metabolic interchanges.  Add functions to detect when they need to
recharge, find and consume suitable fuel, and turn off unneeded power
converters.
Allow NPCs to use Chain Lightning, Finger Laser, Monomolecular Blade, and
implant Claws bionics.

When NPCs are in danger, they cycle through those 4 bionics.  If the NPC
has one of those bionics and enough reserve power to use and is allowed to
use it, they will set their weapon to the bionic's fake weapon (stashing
their current weapon if the melee bionics and caching it for the ranged
bionics) and tracking the bionic's index.  After an NPC has selected a
bionic weapon, they do not evaluate any other bionic weapons.  The NPC
can then attack normally with the bionic weapon.

After firing a bionic ranged weapon, the NPC reverts to their cached
real weapon.  This mimics the normal logic that the player uses when
activating a ranged weapon bionic.
When NPCs realize they are in danger, they will activate all defensive
bionics that they have installed, and turn them off when they are out of
danger.

NPCs in melee range of their target will activate their hydraulic muscles
if they intend to make a reach or hand to hand attack.
NPCs turn on repair nanobots when urged, sensory duller when in severe
pain, rad scrubber when irradiated, and soporific induction when going to
sleep.  NPCs leave their leukocyte breeders and plutonium filters on at
all times and turn them back on every hour.
Allow the player to specify when NPC allies will use weapon CBMs and how
much they will recharge power CBMs.

Expand the tutorial to include CBMs.
"################################################################################################",
"################################################################################################",
"################################################################################################",
"################################################################################################"
Copy link
Member Author

Choose a reason for hiding this comment

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

Layout's resemblance to a robo skull is completely accidental, and temporary.

"origins": [ "ORIGIN_SECONDARY" ],
"followup": "MISSION_FREE_MERCHANTS_EVAC_3",
"dialogue": {
"describe": "No I said ... [*You Hear a short, muffled conversation from across the intercom*] /n Well it seems we do have a use for you. It's dangerous and you are likely to die, but if you complete it we will allow you limited access to our resources.",
Copy link
Member Author

@John-Candlebury John-Candlebury May 15, 2019

Choose a reason for hiding this comment

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

This line is actually never said, and I'm unsure why.

On the same line of though, I was wondering if its possible to override the TALK_MISSION_LIST Npc dialogue since Its a bit too friendly.
I see its appears partly jsonized, but I dont understand how the replies connect with each other, or how it returns to the normal conversation tree.

"i": { "item": "cleaning", "chance": 50 },
"B": [ { "item": "textbooks", "chance": 50 }, { "item": "manuals", "chance": 50 } ]
},
"place_npcs": [ { "class": "robofac_intercom", "x": 46, "y": 17 } ]
Copy link
Member Author

Choose a reason for hiding this comment

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

Actually spawning a normal hidden NPC for the Intercom is probably not ideal?

@I-am-Erk I-am-Erk self-assigned this May 15, 2019
Rail-Runner and others added 5 commits May 15, 2019 00:27
* Mainline most of CraftGunpowder mod content
* Make magazines less reliable and migrate old magazines
CleverRaven#30506)

* Mechanism to fully remove local bindings (so a global bind can be set)
Boats push creatures in water out of the way
Copy link
Contributor

@matskuman5 matskuman5 left a comment

Choose a reason for hiding this comment

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

grammar

data/json/items/generic.json Outdated Show resolved Hide resolved
data/json/npcs/missiondef_robofac.json Outdated Show resolved Hide resolved
data/json/npcs/missiondef_robofac.json Outdated Show resolved Hide resolved
src/iexamine.cpp Outdated Show resolved Hide resolved
src/iexamine.cpp Outdated Show resolved Hide resolved
@John-Candlebury
Copy link
Member Author

jenkins rebuild

@John-Candlebury
Copy link
Member Author

John-Candlebury commented May 15, 2019

I'll close this because the history is all sorts of messed up

@John-Candlebury John-Candlebury deleted the robofac-hq branch August 19, 2019 18:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.