Thread: [WIP]Alien RPG ruleset
-
May 3rd, 2020, 01:42 #351
added automated supply rolls with tracking toggles!
-
May 3rd, 2020, 04:49 #352
I like the cleaner look for the timer pr6i6e6st. You're really adding alot of automation. That's really cool. Thanks for your hard work.
I'm starting to wind down on the GUI, everything seems pretty good on the usability and readability areas and the theme feels pretty cohesive.
Minor graphic updates(nothing majorly new)
Went back through the character sheet and cleaned up text and re-created texts for easier readability. (Things like frame header, and bonus / damage / range columns, etc.)
Made a broken link icon so you can see your unlinked items when creating story entries.Ultimate License Holder
Systems:ALIEN, Savage Worlds (SWADE + Companions, 50 Fathoms, Interface Zero, Realms of Cthulhu), Call of Cthulhu 6th, FIASCO, Paranoia XP
FG Con 16 – Fantasy Grounds Online RPG Convention - Friday April 16th to Sunday April 18th, 2021
Register at www.fg-con.com for all the latest info.
-
May 3rd, 2020, 05:04 #353
Great work guys. keep up the solid work!
-
May 3rd, 2020, 14:39 #354
I'm going to try and edit this post later, i'm heading to work and i want to see if someone can help me figure out what's quite wrong with it. it's for the freezing condition
Edit: what I want to happen:
(RadStrength is leftover from using the same code as the radiation script on manager_char.lua)
If conditions.cold is 1
When cold.strength is 0:
-if the number of minutes that have passed is equal to or greater than a game.turn, if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
-if a whole hour or more has passed if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
-if a whole day has passed if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
When cold.strength is 1:
-if the number of hours that has passed is equal to or greater than a game.shift, if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
-if a whole day has passed, if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
When cold.strength is 2:
-if a day has passed, if health.current is greater than 0, roll stamina; if health.current is 0, roll deathroll.
Edit: after reviewing this in a different light, I think I see my problem.
Code:function onSourceChanged(nodeChar) local RadStrength = DB.getValue(nodeChar, "cold.strength", 0); Debug.console("CharManager, RadStrength = ", RadStrength); if RadStrength == 2 then newLimit = 1; Debug.console("CharManager, onSourceChanged, newLimit = ", newLimit); end if RadStrength == 1 then newLimit = DB.getValue(nodeChar, "game.shift", 0); Debug.console("CharManager, onSourceChanged, newLimit = ", newLimit); end if RadStrength == 0 then newLimit = DB.getValue(nodeChar, "game.turn", 0); Debug.console("CharManager, onSourceChanged, newLimit = ", newLimit); end DB.setValue(nodeChar, "cold.timelimit", "number", newLimit); local TimeLimit = DB.getValue(nodeChar, "cold.timelimit", 0); local TimeLimitFactor = CheckTimeLimitFactor(nodeChar); if TimeLimitFactor == 0 then onCheckDay(); onCheckMinute(); if MinuteDifference > DB.getValue(nodeChar, "game.turn", 0) and MinuteDifference < 60 then nMaths = 60 / DB.getValue(nodeChar, "game.turn", 0); Reduced = DB.getValue(nodeChar, "cold.timelimitcurrent", 0) - nMaths; DB.setValue(nodeChar, "cold.timelimitcurrent", "number", Reduced) bMinute = false; nOldMinute = DB.getValue("calendar.current.minute"); nOldHour = DB.getValue("calendar.current.hour"); nOldRound = DB.getValue("calendar.current.day"); nNewMinute = 0; NewHour = 0; NewDay = 0; if DB.getValue(nodeChar, "cold.timelimitcurrent", 0) <= 0 then if DB.getValue(nodeChar, "health.current", 0) > 0 then throwStamina(nodeChar); elseif DB.getValue(nodeChar, "health.current", 0) == 0 then throwDeathRoll(nodeChar); end Debug.console("CharManager, onSourceChanged, cold.timelimitcurrent = ", DB.getValue(nodeChar, "cold.timelimitcurrent", 0)); end elseif MinuteDifference < 1 or MinuteDifference > 59 then onCheckHour(); if HourDifference > 0 and HourDifference < 23 then nMaths = 3600 / DB.getValue(nodeChar, "game.shift", 0); Reduced = DB.getValue(nodeChar, "cold.timelimitcurrent", 0) - nMaths; DB.setValue(nodeChar, "cold.timelimitcurrent", "number", Reduced) if DB.getValue(nodeChar, "conditions.cold", 0) == 1 then bHour = false; nOldHour = DB.getValue("calendar.current.hour"); nOldRound = DB.getValue("calendar.current.day"); nOldMinute = DB.getValue("calendar.current.minute"); NewDay = 0; NewHour = 0; if DB.getValue(nodeChar, "health.current", 0) > 0 then throwStamina(nodeChar); elseif DB.getValue(nodeChar, "health.current", 0) == 0 then throwDeathRoll(nodeChar); end end end end elseif TimeLimitFactor == 1 then onCheckDay(); onCheckMinute(); if HourDifference > DB.getValue(nodeChar, "game.hour", 0) and HourDifference < 59 then Reduced = DB.getValue(nodeChar, "cold.timelimitcurrent", 0) - 1; DB.setValue(nodeChar, "cold.timelimitcurrent", "number", Reduced) if DB.getValue(nodeChar, "conditions.cold", 0) == 1 then bMinute = false; nOldMinute = DB.getValue("calendar.current.minute"); nOldHour = DB.getValue("calendar.current.hour"); nNewMinute = 0; NewHour = 0; NewDay = 0; if DB.getValue(nodeChar, "health.current", 0) > 0 then throwStamina(nodeChar); elseif DB.getValue(nodeChar, "health.current", 0) == 0 then throwDeathRoll(nodeChar); end end elseif HourDifference < 1 or HourDifference > 59 then onCheckMinute(); if MinuteDifference > 0 and MinuteDifference < 23 then nMaths = 60 / DB.getValue(nodeChar, "game.turn", 0); Reduced = DB.getValue(nodeChar, "cold.timelimitcurrent", 0) - nMaths; DB.setValue(nodeChar, "cold.timelimitcurrent", "number", Reduced); if DB.getValue(nodeChar, "conditions.cold", 0) == 1 then bMinute = false; nOldMinute = DB.getValue("calendar.current.minute"); nOldHour = DB.getValue("calendar.current.hour"); nNewMinute = 0; NewHour = 0; NewDay = 0; if DB.getValue(nodeChar, "health.current", 0) > 0 then throwStamina(nodeChar); elseif DB.getValue(nodeChar, "health.current", 0) == 0 then throwDeathRoll(nodeChar); end end end end elseif TimeLimitFactor == 2 then onCheckDay(); onCheckHour(); if DayDifference >= 0 then Reduced = DB.getValue(nodeChar, "cold.timelimitcurrent", 0) - 1; DB.setValue(nodeChar, "cold.timelimitcurrent", "number", Reduced); if DB.getValue(nodeChar, "conditions.cold", 0) == 1 then bHour = false; nOldHour = DB.getValue("calendar.current.hour"); nOldDay = DB.getValue("calendar.current.day"); nOldDay = DB.getValue("calendar.current.minute"); NewDay = 0; if DB.getValue(nodeChar, "health.current", 0) > 0 then throwStamina(nodeChar); elseif DB.getValue(nodeChar, "health.current", 0) == 0 then throwDeathRoll(nodeChar); end end if DB.getValue(nodeChar, "cold.timelimitcurrent", 0) <= 0 then DB.setValue(nodeChar, "cold.timelimitcurrent", "number", TimeLimit); Debug.console("CharManager, onSourceChanged, cold.timelimitcurrent = ", TimeLimit); end end end end
Last edited by pr6i6e6st; May 3rd, 2020 at 16:50.
-
May 5th, 2020, 19:01 #355
- Join Date
- Sep 2013
- Location
- Tonganoxie, KS
- Posts
- 39
I love this and what you have created. I have a feeling I am missing out on how a lot of the automation works. I'm continuing to learn as I build tables and import Items and characters. I don't know if I am setting the calendar correctly or am missing something on the character sheet, because I'm not seeing the automatic healing taking place. The more I play with this ruleset, the more impressive it gets though. Thanks for doing this.
-
May 5th, 2020, 19:10 #356
automated healing works as stated in the rules where if you are not suffering from a condition, are not exposed to irradiation, and a turn goes by, you gain a point. you also have to be human. i'm not seeing any issues with it at the moment
BUT i am currently in the process of changing how i check for time differences, by converting the dates to seconds, rather than relying on too many scenarios. hopefully i'll get this all beat out before too long. might have to settle and ignore months somehow, as that's my current stumping factor. thank you for sticking through it.
-
May 5th, 2020, 19:26 #357
- Join Date
- Sep 2013
- Location
- Tonganoxie, KS
- Posts
- 39
I'm certain any issues I am having are due to my ignorance.
-
May 5th, 2020, 19:36 #358
i plan to make an updated video at some point when i get this mechanic and a couple others worked out.
but here's a checklist:
-calendar is set up
-shift/round is set up
-human/synth button above health is set as desired (click to change)
-"Stressed" button means you are in a stressful situation and thus can't lose stress over time, if you are looking for stress loss
-are your conditions toggled on(black) or off(white)?
-is the panicking button toggled on or off? set this to on only when you are panicking. when you stop panicking, click it off.
-some functions need you to be on the combat tracker or for a player to have control of the PC.
-are your items set to the right type? click where it says "gear" to set it to the appropriate type of item
-are your items equipped? armor, weapons, power supplies and air supplies must be equipped.
-MaxHealth is not automatically set yet, you may set this with the field below the health section
-the Panic Mod modifies the result you get on your panic results
-combat type changes the panic table to roll on
-NPC's can be set to a creature, or npc; you can decide if they roll on a Human, Synth, or custom defined table by cycling the other button next to it.
-Vehicles can be changed by clicking on the vehicle type section.
hopefully this gets you started
-
May 5th, 2020, 20:09 #359
- Join Date
- Sep 2013
- Location
- Tonganoxie, KS
- Posts
- 39
Definitely. Thanks!
-
May 7th, 2020, 08:16 #360
- Join Date
- Aug 2019
- Posts
- 2,025
This looks like a great extension/mod/ruleset!
Any chance that we could get the clock as a separate extension for use in other rulesets?
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Bookmarks