Add Arkania survival feature: generator state, quests, dialog, and weather integration#20
Conversation
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c32303f8cd
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ApplyEffectToObject(DurationType.Instant, eEffect, oTarget); | ||
|
|
||
| DelayCommand(6.0f, () => { ApplySnowstorm(oTarget, oArea); }); | ||
| DelayCommand(6.0f, () => { ApplySnowstorm(oTarget, oArea, damageDice); }); |
There was a problem hiding this comment.
Recompute snowstorm severity before rescheduling
When an Arkania player is already in a snowstorm, this recursive call keeps reusing the damageDice value captured when the loop started. If the generator reserve changes thresholds or ARKANIA_SAFE_FROM_COLD is set for the area while the player remains in the same area, the ongoing loop never calls GetSnowstormDamageDice again, so deposits/safe-cold areas do not affect that player's storm damage until they leave or otherwise stop the loop. Recompute the dice from oArea inside ApplySnowstorm before applying and rescheduling so the new generator state can take effect during active storms.
Useful? React with 👍 / 👎.
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b35a449d8e
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| public const string CoalResref = "ark_coal"; | ||
| public const string MachinePartResref = "ark_machine_part"; | ||
| public const string HeatCoreResref = "ark_heat_core"; | ||
| public const string MedicalSuppliesResref = "ark_med_supplies"; | ||
| public const string ForecastDataResref = "ark_fcst_data"; |
There was a problem hiding this comment.
Add the missing Arkania item templates
These new resrefs are used as quest collect objectives/rewards and by the generator dialog, but the commit does not add any matching item resources (I searched the repo/Module for ark_coal, ark_machine_part, ark_heat_core, ark_med_supplies, and ark_fcst_data and found only these code/docs references, no Module/uti templates). As soon as any Arkania quest that awards or requests these items is enabled, players cannot obtain/turn in the required objects and rewards such as AddItemReward(ArkaniaGenerator.CoalResref, 3) will try to create a non-existent template.
Useful? React with 👍 / 👎.
| { | ||
| var builder = new QuestBuilder(); | ||
|
|
||
| TheCityMustSurvive(builder); |
There was a problem hiding this comment.
Wire the new Arkania quests into module content
These quest definitions are registered by reflection, but I searched both Module and SWLOR.Game.Server for the six new quest ids and ArkaniaGeneratorDialog and found only these definitions/docs. With no NPC/dialog/trigger/placeable locals referencing the ids, players have no way to accept or advance the added quests, and the multi-state quests that rely on trigger/placeable progression cannot be completed once the planet content is enabled.
Useful? React with 👍 / 👎.
Motivation
Description
ArkaniaGeneratorStateand a serviceArkaniaGeneratorto trackHeatReserve,Integrity,Coal,MachineParts,HeatCores,MedicalSupplies,ForecastData,Morale, and timestamps, plus helper methods likeAddCoal,AddMachineParts, andBuildStatusText.ArkaniaGeneratorDialogto let players view generator status, deposit items, and remove items from player inventory by resref viaCountItems/RemoveItems, and wire item resrefsark_coal,ark_machine_part,ark_heat_core,ark_med_supplies, andark_fcst_datainto deposit actions that callArkaniaGeneratormethods.ArkaniaQuestDefinitionimplementing the first Arkania quest package (repeatable community turn-ins and adventure quests) and hook quest completions to update the generator state viaArkaniaGeneratorcallbacks.ArkaniatoPlanetTypeas an inactive entry and add an ArkaniaWeatherClimateinWeatherPlanetDefinitionswith custom messages andHasSnowStorms = true.ApplySnowstormsignature toApplySnowstorm(uint oTarget, uint oArea, int damageDice = 2), clamp dice, addGetSnowstormDamageDicelogic that returns 0/1/2/3 based on area name, localARKANIA_SAFE_FROM_COLD, and theArkaniaGeneratorHeatReserve, and use that value when applying and scheduling snowstorm damage.Readmes/ArkaniaSurvivalPlan.mddescribing scope, architecture, item resrefs, and phased implementation guidance.Testing
Codex Task