Dev log - what's cooking today?

Users who are viewing this thread

Status
Not open for further replies.
It seems you will be spending this Christmas in the best way possible!
Glad to hear work turned out well and that you're back on your feet and working on your favorite pastime again!

I think the teacher's rule applies here:"Just having one student listening is worth doing a proper class."
 
I wanted to mention I'm going to take a break on Phosphor until Christmas.
I'll be spending some time at a hospital next week trying to run down whats going on with my health better
and otherwise will be doing a two week sprint with the Warsword Conquest team to help them get a christmas edition out the door. 

Perisno seems to be on hold which is fine.  I still think Phosphor deserves some attention, so maybe I can squeeze in a week for New Years.

  - GS
 
Morrowind Mod Man said:
It's so cool of you to extend your help to other mods when you have so much on your plate already. Very generous.

  Kind of figured Warsword has two active devs that actually code instead of playing Hello Kitty or somesuch kids game on their telephone,
so if I get tangled up at the hospital they will still deliver anyway.  Not really sure whats going on with my health.  Finally got a doctor willing to go look...

  Did make some improvements at Warsword but I feel like I haven't done enough.  At least Nameless is a decent to excellent coder and doesn't expect me to fix his problems of the last 5 years for him; Perisno has fewer issues than it used to, but I really want another coder at Perisno.  Someone said I should make a gsanders Perisno "sub"; the problem is, there hasn't BEEN another Perisno for code except 2 weeks in April.  Noone else supplied any code of meaning in the entire past 12 months.  That's what got overlooked in that.  There hasn't BEEN another Perisno coder, nor another bug fixer, nor anyone with a heartbeat doing Perisno .7-series coding, except for Bean for 2 weeks, and he really did work = Perisno .75 was his.

  Warsword will have a new version in fairly quick order, with at least two streams of code, so no one person carries all the weight or gets stuck alone.  I don't like the lore limitations, which are difficult to me -- in my "real life" if I get told 3 times "no" at a store I take my business elsewhere, regardless of how long we've used that supplier.  I don't like to hear it.  "That'd be difficult" is fine; simply "no", with no further attempt to reconcile, disastrous.  That's kind of how I feel about Perisno. I love it to death, and probably no one else wants to work on it because I was there.  I have no rights to update Moddb, steam, or to make any "official" updates.  Even when all of the updates actually come from me.  Its more humane to let it sort itself out.

  Phosphor is exciting but I'm stuck on this darned taverns not working right, possibly after training up guilds and possibly just by phase of moon.  Other than that,  I'm pretty happy with it.  If it was code I have the right to share, I could get a second opinion on it; but if part of it uses assets that aren't mine, it locked and I cant even moddb it cleanly.  I'm at the mercy of a flake, besides myself.

  I'd like to make a non-submod using code from Phosphor, with none of Perisno except anything I myself added or OSPs, which is 90% of the mod again, and throw away Perisno proprietary anything while building my own set of sceners, modelers, etc.  I'm willing to spend some money to do so, to make a semi pro free mod, with better talent and more motivation.  But I may as well look outside Perisno for help, because Perisno people, excepting Konyk, pretty much wont talk to me because they feel I'm toxic to their mod -- and I feel that if they wont contribute, they were there to pose.  Theres a whole forest of dead wood; its not worth picking on any one.  When I'm the only one that even works on it, its pretty much past its use-by date.

  After New Years, we'll see.  I don't really think Bannerlord will launch anytime soon -- too much hype and not enough product.  Maybe when they are serious we can see a module system and coder's info; until then its not something to take seriously.  A mod isn't made by vapor and good intentions; it needs real code.  Everything else is smoke blowing up my buns.

    Not sure how next week at the hospital will go.  Its sort of a fishing expedition looking for tumors, plugged up anythings, and stuff that normally isn't done here because it costs money.  This is the land where they serve homeopathic teas and consider that a substitute for medicine because it costs less.  Or where the chief doctor smokes heavily during a press conference, because it shows support for the tobacco lobby, which is tied to the communists, who are sort of a mafia involved with everything.  But I digress...

        - GS


 
 
a month of illness passes and I power up my work PC (only one with many monitors to spread out all the files)
today's changes for "test I"
  1)  added  (assign, "$g_dplmc_lord_recycling", DPLMC_LORD_RECYCLING_ENABLE), # set lords recycling
        to script  game_start    in order to set lords to come back after exile.  The rest was already there but it was never set to a valid value

    and
        simple_triggers  #133  lines 7206-7414  regarding exiles returning had two errors

  2) game_menus  removed option to hire guild workers for the player party, to eliminate the corruption of town taverns

  3) edited items  to reduce number of charges for jann grenades, summoners, weaken dark wizards and block summoners from summoning wizards
      edited troops so drow no longer summon as many dark wizards and weakened magic given to drow lords and weakened weapon for highest priestess troop

  4) moved custom troops out of heroes section in  troops

        # still need to adjust  mission_templates to check troops lines custom_troops_start top custom_troops_end  like heroes,
                which implies making those in constants  and then expanding the heroes check.  This also means custom troops wont get permanent mods to stats
                in the start of game as their gear weight may change; this implies editing the call to encumbrance checking for troops to instead handle this short range as heroes not troops, in order to not make permanent stat changes to custom troops, which may have dozens of potential shifts in gear later in game.

----
  5) after some sanity checking (that's what they call it when you test something to see if it survived the latest edits), I'll upload a fresh all_in_one update at mega_NZ to replace the "test A" base. 

  6) I *should* adjust cost of giants and food consumption of giants.
      its not game breaking, but eventually they will cost more.

  Tested for 3 hours or so.  Its fairly stable; possibly Karnoth tavern is messed up, or that may happen after mining.  Didn't see any other tavern issue though, not even at silk throat.
 
  Although it should be obvious by now,
    I'm taking a break from Phosphor for about 2 weeks more to sprint on Warsword Conquest's big update.
      As Perisno looks like its out of danger for the winter I'll take a long break from it as well.

    I've found and fixed a series of issues with sea traders  (discovered on behalf of Warsword and donated the code to Perisno as well)
      actually Perisno didnt ever want sea traders and is fed up with my tweaking them

      the double recruits issue for villages in Perisno

      more thinking about how timers work to resolve the Cant leave town issue in Rigale
      optimized a method to find the right icon more quickly when crossing water and reaching land again  (discovered on behalf of Warsword,
            Perisno didnt want it)
   
        some thinking about flying, which we have but it could always be better
        and of course now that TGS assets are open I'd like to merge their magic system over the one used now to make a mana driven, user selectable set
            which may include things like flying and heals, since we have them

            and because Perisno is frustrating (submods have no right to their own forums) its time to make a new mod that can start in Pioneer's guild and earn a forum without stealing Rigale's bandwidth.  So, those are things to explore after Warsword's release -- say, Jan 20th or so to give it time to cool off after release.

  I'm not leaking blood anymore but another wave of scanner visits and hospital consultations is set for next week.  Its really hard to get a body scan in this country, although I think I can now pull it off.  At least going outside the system, competition and oversupply of CAT scanners has pushed the price down to $200 USD for a 3D CAT scan.  Just TRY that in USA heh!  It used to be double that here just 2 years ago, or less.

  - GS
 
Warsword Conquest. 
    final calm before the storm moment.
    New version should be released internally any day now.
    Was testing last 3 days, following 1 month heavy changes:  made minor changes to racial prejudice scripts:
      all sixteen+2 variant "virtual skins"  either generally like or hate each other, and there is an 18x18 array stored as a list tracking the prejudice
      that exists at game start between skins.  From any faction, there exists a mechanic to get the skin(s) belonging to that faction, and to derive
      compatibility between a given skin and another faction/skin/troop.  From there an entire party can be checked for compatibility to any potential troop
      to add to the party -- a troop that is both liked and hated by different stacks within a party has the number of each troops in a stack multiply their
      like or hatreds and seperate tallies exist; the net sum adjusts the likelihood of a prisoner_chat gaining a recruit OR a village_recruit getting recruits.
      Failed village recruits are displayed to help give feedback; how many would have volunteered, how many turned back after meeting your party, how many stayed to hire on (and adjust the cost for the new number of recruits). 
      Added prisoner_dialogs by Mordechai
        removed option to kill lords/any prisoner

      adjusted dodge to not be universal but apply only to select troops
          added a feedback for debug to dodge with a random roll to print the debug, so that instead of every dodging agent writing to buffer only a small number
          dump status, like radioactivity does not happen all at once.  This keeps battle messages from overflowing the output buffer.
          removed the check on projectile speeed intended to decay dodge chance; this produced too many errors in test
     
      sea traders can visit river ports
        gave up on sea traders travelling over sea although there may yet be some sort of linked list of travel end points allowing line segments to plot a course along rivers and around peninsulas.  For now it is easier to teleport there and presume the ship figured out how to get there during the darkness of night.
       
        made a changed algorithm for crossing sea to put a sea icon on any arbitrary party while over water and swap upon hitting land.
        This was relatively easy due to the small number of icons in use, but party_templates needed sorting on icon type for speed.

      did full economy tuning, increased trade routes by around 200 new routes, documented 500 pairs of trade routes at 43 towns; documented the town ownerships, adjusted economy at 183 villages

      implemented kingdom party spawns somewhat like Perisno 77 series but with tunings requested from Nameless Warrior, who didnt abandon me or find
fault in every single initiative I tried to make, thnks for that.

      adjusted female human skin to use Gekokujo female skins and hair
      added a second female skin for elves and gave it gekokujo hair again
      adjusted approximately 1500 dialogs and 800 strings for gender correct testing
      added gender correct testing in scripts

  although female lords exist for dark elves, no attempt at princess code is made, or desired, apparently.
    At one point I was asked if marriage could be removed, but I felt strongly its a mistake and so it will be in.
    Added wife as a companion code and added an escape feature to auto-remove wife from party if party is at total_defeat in game_menus
        wife_as_companion boost of stats by personality with corrected gear and dialog for first time joining party and a limiter
        to prevent farming stats /gear by cycling in and out of party.  Even divorce plus remarriage and join party does not get a 2nd boost of stats/gear

  adjusted existing sell prisoners to a barkeep for Ramun's pricing to now use a global variable storing a 3 day updated dice roll to determine
    market for barkeep prisoners.  The price offered is now either  (33% of base-or-50gold / 50% base-or-minimum-50g / 66%-or_minimum-50g) instead of
flat 50g regardless of level.  Women townsfolk have their value higher.  Straight townspeople can already be traded at "humanitarians" for tier 1 recruits of that faction.

  adjusted all food items by 1.6 times weight, servings, cost to reduce the number of inventory slots wasted preparing for seiges.
  placed silk at Nippon and Goblins (spider mounts), adjusted iron, grain, salt, etc as part of economy review

  made an alternative system for unisex troops per Nameless request to flip templates instead of faces so as to change armor worn

  some documentation of all simple_triggers to find the simple_trigger associated with errors - every trigger is numbered in the source now

  trigger timings adjusted to prevent standing waves from forming in processor bandwidth utilization over time to reduce stutter

  analyzed number of objects tracked starting at troop_slot 165 to determine corrected offset for next troop_slot.
      determined Warsword Conquest has to slot 875 busied already and adding another faction will likely push this beyond 900, so renumbered
      next troop slot after 164 accordingly to prevent internal corruption.

  Made the same calculation for phosphor and Perisno and determined these values are around 520 in Perisno and 600 in Phosphor/Perisno 0.8
    adjusted Test J accordingly.  Did send results to Michadr as suggested changes to module_constants.py

Perisno 772 is out and nothing much needed there now

Perisno 773 unofficial test e:  (will break save game)
  calculation for starting troop_slot after 165:  511
  implies need to add 10 more on Perisno 772 numbering but this breaks savegame compatibility    was starting at 505 should start at 520
  adjusted in 773e constants.py for future reference

  troops.py  adjust Silber's formulas for skills to lower athletics and shield presets
                  this directly affects dodge, correctly
                  importance is as a reference in case 772-official is changed, next patch should change these values, else carry forward to Pho test J

Perisno 0.8  my code isn't really of interest so the group will look at last May 2015 version.
  EDIT: Friday 22 Jan 2016: helped Perisno group get unstuck in their source merge May 2015 0.8 -> Perisno .771, was broken in many places
          DONE,  0.8 merge compiles cleanly, fixed a source of corruption by renumbering the troop_slots  in constants.py
            some other quick fixes, .772 dodge fixes, reformatted some murky mission_templates code to find the missing brackets, etc.
            added wife as a companion fix in script_party_remove_all_companions called when at mnu_total_defeat, ejects wife from party and sends her to court

Phosphor Test J: (will break save games)
  sorted party_templates by icon types in preparation for faster swap of icons when crossing water.
    Perisno/Phosphor has a very large number of icon types so must break into ranges and then handle divides within nested blocks instead of handing 20
different if then else branches the simple way.  This allows a b-tree shape to the testing for shorter path to handling the icon swap  DONE

    adjusted athletics and shield skills for troop level predefines made by Silberfalke  DONE
      this generally lowers dodge chance for most troops, some were set to extreme values from Silber

    Most of the changes at Warsword conquest need porting back to Pho test J.
    Fri 22 Jan 2016:
      Wife as a Companion change to elevate stats (1x only) of romantic or adventurous wife (differently), others won't join (until this gets rewritten)  DONE
      Verify no double recruiting at villages  DONE
      Remove "kill prisoner" option from prisoner talk and block recruiting quest NPCs from dialogs prisoner_chat    DONE
      Dodge updated as changed for Warsword Conquest in mission_templates  DONE     
      Determined the array of relations stored at slot_troop #165 is actually storing every hero, so size needs to be in this case +29 entries  DONE
            need to update slots.xls to mark accurately the new slots in use  - In progress
            need to perform same calculation for Perisno .772 & 773e and update each version's slots.xls, so 3 excel files to update  - IN PROGRESS

    I may collapse some of the female skins and open up some virtual skins with racial prejudices now that the system is tested and working.
    Magic still needs a full rebuild using TGS system/assets.
    Magic resist needs a full build.

    test to see if changing troop_slot numbering resolves corruption seen in Pho for guild activities.
 
@alduvan  and everyone else that hates dodge  --
dodge would work better if the troop_slots storing one of the values used to make the dodge calculation wasnt getting stepped on by an in-memory array holding relations numbers between (each) troop and ALL heroes (companions, lords, ladies, kings, pretenders, and in perisno's case 15 quest npcs and 15 quick troops, plus 3 placeholder markers).

  Also in my opinion the base athletics and shield values are too high -- I kept waiting for someone else to adjust the troops and everyone else kept figuring that if the numbers were fine by me (they weren't, I just wanted the scripting part not to babysit troop numbers) they'd not touch it.  Now that numbers actually mean something, everyone is bat-guano for a "fix", with everyone and their uncles proposing radical biopsies without really following the ball.

  The exact fixes needed aren't actually IN dodge; they are where constants.txt has defined the place to hold the effective athletics, and 41 other values, including dueling mod, gender, jail break status, gear weight used in encumbrance, and prisoner_chat status.  The bandaid asked in 772 is the ability to turn OFF dodge, completely, without actually finding where issues came from.  You may do that at the start of the game, at the same place as selecting fog of war.

  The precise change to resolve all of that was given to Michadr today for use in 0.8, which he, abot, daumor, Konyk, and Leonion are hard at work building this moment.  I had promised not to touch it but I found them stuck and invested a half day unsticking it.  I'm annoyed that so many people came here to vehemently blame me for ruining the game, so much so I left the group, but when the group was really stuck, I think I put them about a month ahead just now.
A Michadr/Robin 0.8 is real, it clean compiles, I removed 8 different places it was broken, and added a fix I'd made for Warsword Conquest to let wife as a companion self-heal if the party is captured, as well as a boost to wife as a companion for the first time she joins a party (and blocking it from being used twice, even by a divorce&remarry cycle).  Dodge has 2 seperate layers to turn it off and 1 further set of range chacking to guard against corruption.  All combat enhancements can be turned OFF in 772, already, so performance nags can adjust their own game to match the expectations of PoP, Native, ACOK, dairy queen (sorry thats not a mod), or enyone else they feel Perisno isnt comparing with.

  I am scheduled for surgery in about 10 days; yes, the usual 6 months wait in Bulgaria became 10 days after they gotr me to pay cash instead of letting insurance handle it.  I havent been fired yet, despite coding Perisno/what else every single day for some years now, rather than do anything useful.  On the other hand I make about $2 an hour in a third world country; technically work pays me to "be available for emergencies".  All of you benefit, or if all my code is garbage, you all had accesss to last years' Perisno.  So cut me some slack.  Perhaps after giving birth to my 11.7 mm pain in the side I will be nicer, but don't count on it.  We have this co-dependent relationship -- people like to complain a lot, and I take it personally.  But I also fix things -- never for the whiners, but because after getting angry at the abuse sent to me, I remember some people were praying/asking kindly for relief, and so for them there was code given.  Even from outside the dev circle at Perisno.  I have literally bled for Perisno since I joined 15 months ago.  When every other coder had abandoned the mod, in truth, I was there.  Now when I really can't be there the other devs have returned; some may well stay.  Try not to give them a hard time.

  I'm not dead yet!

  - GS

====
  mirrored to prevent deletion at the first board, one of the reasons I took Pho traffic here
 
@ Warsword Conquest:
      improved dodge to account for weapon speed in melee weapons, projectile speed in firearms and bows/crossbows/thrown weapons, and
        added an exception for magic, grenades, shield bash, and mounts.
        I'll import that to the next Pho shortly...

      dual mercenary spawns in tavern working  this was Dell using an OSP
      special mount sounds were a great idea, wish I'd thought of it first.  No more whinnying horses for wolves/lizards/spiders/goats/bears

      items use restrictions likewise, but Perisno group actually got the code without me -- someone gave it to Robin last spring, so it wasn't me for a change
          but this said I think it could be used differently to isolate small, medium, large skeletons and then segregate items for each.

      like the freedom to sail a boat anywhere but half my sea battles drown me.  I'll use encumbrance checking code to mediate the drowning sometime
so the sea travel is useful in for example the next Pho evolution.  DONE
Wednesday: Heavy changes to sea battles to remove the drastic effects of hitting water. 
Now ramming and collision of boats dumps both parties into the water but they take their sweet time drowning if they arent heavily encumbered.
This allows the fight to continue, near the surface and underwater... until eventually one side triumphs.  I put 40 troops from my side into the water and lost 2 from drowning latest test - two that died had heavy armor on.


    Loving the many races and the code to set up prejudice between them, extending to virtual races (so 18 variations on a skin and counting...)
      a virtual race is a skin with conditions so that the "virtual skin" has different properties from its sibling
      thus  elf skin is shared between high elf and dark elf in Warsword, but they become two different virtual skins.  Likewise elf female has two flavors, so 16 actual skins + 2 virtual skins at end.

    explored upswing spear animations and ideas to increase spear effectiveness in melee.  Adjusted overswing animations duration to be shorter to give spear better chance to not be interrupted.  Also remove flag to lower damage with shield for medium length spears.

    reduced number of mercs with skin tf_big from spawning in taverns
    still have not investigated goblins silk supply

  Phosphor:
    the process of back porting changes made for Warsword in terms of dodge, and speed up of game (reduced stutter) continues.
    Expecting Warsword Conquest's massive update to go out the door to players Friday-ish, freeing me for other tasks.
 
rebuilding the slots.xls file for Pho 22
  this will be a huge all-day rebuild, based on the time needed yesterday to build a slots.xls file for Warsword Conquest.

  looking at factions again in Kaos kit 1.5 (needs 3x base factions, thus minimum 45 factions to support:
      base, rebel, civil faction for each
      needs 15+ pretenders )

  Maybe needs an Orc faction from Urak Hai @ TLD, or Goblin @ TLD;  for research
    added room in constants to add one more faction for v22

    added constants support for Silverstag Center Improvements and Enhanced Diplomacy
    added declarations support for all of Rigale building contruction and outpost/settlements management
        this section needs considerable work in the code however.

  This may be an excellent time to drop the previous models and start fresh; I can still offer to pay a mapper for 1 strategic map,
especially if I supply a base JPEG from a commercial fractal terrain generator.

Thursday Feb 18th 2016:
  Building slots.xls for Rigale v12.42, which is v12.41 date mid October 2015  DONE 16:40 local time
      noted some mistakes in previous constants layout that exactly explain many persistent problems with Rigale / Phosphor
          hiring guild laborers crash explained - slots conflict
          persistent issues with fishing and hunting spt (party types on map) explained - conflict with other spts
          PBOD spamming shield bash explained - player shield bash commented away at PBOD
          PBOD spear brace conflict with Rigale war cry - player spear brace commented away at PBOD

      small improvements markup at the slots.xls file from last 2 day's efforts.
      changed constants.py, slots.xls, pbod_constants.py, formations_constants.py, added credits_part_2.txt at source folder
        updated version number in module_presentations.py

      edited Warsword Conquest and Phosphor 22 versions of slots.xls to update issues noted from Rigale slots.xls rebuild
      this version was motivated by a volunteer wanting to work on magic (or perhaps just wanted Warsword's source code to make his own mod, its uncertain yet, so I suggested he start with Rigale, else I can't help him)
    NOTE:  Rigale v12.42  contains numerous changes to slots usage in constants.py and thus is not savegame compatible with anything
    Source only (you are expected to compile for yourself) 
    https://drive.google.com/file/d/0B4sh7GRykLgEeWtfSVk5aWlVdkU/view?usp=sharing

Friday 19 Feb 2016:
  Perisno8 slots.xls  shows many conflicts between diplomacy, PBOD, Silverstag Combat Enhancements, Sprinting, Autoloot
                              leftover from Perisno .7-series.
    cleaning and cross checking Pho22 slots.xls
        part of the problem is diplomacy slots aren't written with the native slots in the file, but come MUCH later and weren't seen when choosing new slots.  Now there are many collisions to arbitrate.
                          Pho22:  TPE slots were colliding, diplomacy slots also colliding, sprinting collision, autoloot collision

  Still owe Warsword Conquest sea battles cleanup for the weekend test.  If this is done tonight I'm out of WC issues from a code perspective...

  - GS
 
 
Hard to believe 3 months without an update from me.

  Rigale is currently being folded into Warsword Conquest as a submod.  I won't be able to make that code available but I CAN backport changes to here once it releases so that THIS forum's copy is updated.  The gating item for a launch timetable is the big update at Warsword Conquest - when that releases, I can release around 2 weeks later.  This puts it end of May/start of June, around the time most students are in finals.  WC is at  https://forums.taleworlds.com/index.php/topic,145937.0.html
look at the first and last pages to see whats happening on that relelase.  Until release of the coming new version, last player download version is 2 years old!

  Over on the Rigale side of things:
hunting:
  Fixed random hunting spawns
  updated the method of determining skinning and butchery bonus, which was interfering with hides, meat, and furs
  too many lost (full) tool sets, so these are now down to 14% of critical failures instead of a 50/50 chance for many spawn types
      when failing the worst possible roll.  This happened often at low skill levels, so even more reason to adjust.

fishing:
  while travelling on the ocean, rivers, or water "bridge" terrains, was getting lumber spawns.  Now these spawn as fishing sites.
    cleaned up all the chance to spawn and made sure every terrain type had something happening so no falling through cracks.

issues only at Warsword Conquest - Rigale  (WC-R):
  dialogs:
    after merging Diplomacy, the tavern dialogs are off:
        second mercenary spawn is not accessable
        all tavern merchants no longer accessable
        overwriting the merged dialogs with original Warsword Conquest (minus Diplomacy) gets the dialogs back, so this implies a slow tedious re-merge, made maybe easier in that better matching of landmarks within the file exists.  I just have to merge say 50 lines, compile, talk to a merchant and then 2 mercs, and then repeat until broken.  Slow but easy... (hopefully).

    Diplomacy - scripts, items, party templates, simple triggers, triggers  all working
        Rigale stuck in town bug managed to get ported as well.  This is regretable.

    The starting character creation options have Rigale skills taken into account. 
      This means every choice can mean different Rigale skills added to the plain vanilla version Warsword Conquest.

    Recipes were re-built to result in Warsword Conquest items.
        Right now 95 recipes exist with another 30-40 needing to be made.

  Cooking makes 1 food type per recipe not 12 as before, and crafting ammunition gives normal result types not 12 of each type.
  This required some changes.

  Shaman and all supernatural layers are gone from the coming build.  At least if it gets spooky, it's because _I_ asked it to, not because that was in the code inherited from Rigale v11-

Warsword Conquest specific changes (not for Rigale OSP):
    Guilds working, some new tools for examining infrastructure (trade routes, racial prejudice, every last troop defined/lord/lady/companion/merc/bandit/villager/town walker), rebuilt town menus, fixes to wife as a companion,
rebuilt economy and enterprises, expanded trade routes list between 47 cities, sea traders, expanded kingdom parties,
fast (low stutter) system to diplay correct icon for parties crossing water and reset when hitting land, and around 20 other changes.

  Probably I'll make the wife as a companion fixes OSP and fold into a released Rigale source, since Wife as a Companion was where I entered the entire process of scripting for Warband -- I just wanted my spouse to be more outgoing but didn't understand modding - 'way back' in Sept 2014.

  This summer I'll be working on the things Phosphor wanted, but instead of using Perisno as a base it will be driven by Warsword Conquest's art / map /factions.  In part the art for WC is smaller (2.25 GB unpacked instead of 3.25-3.70 GB with Perisno 7/:cool:;
in part the WC code is much cleaner, in part because the WC code was gone over, line by line, by an equally skilled coder.  It's useful to have 2 sets of eyes.  So mainly this means magic/abstracted religion and some management layers from Silverstag.  There will be also some shift to sea travel pathing from Viking Conquest now that it's OSP for code assets.

  I was sick all of November, half of December, had some surgery first half of February, and was sick again the last half of April with some long flu.  Otherwise code has been flowing -- but the results will be shown shortly in the Warsword Conquest update, and the WC-Rigale expansion almost immediately thereafter.  It's what's getting written right now - the other was finished a month ago from my perspective (but the artwork needed more rework - not my department).  Finally back on my feet and ready to do serious code again.  Did update some monitors for my eyesight and otherwise barely getting by at "work", where at least I can code Warband nods while waiting for emergencies in return for a retainer thats about 1/3rd minimum wage in USA, or slightly less. At least Bulgaria costs much less to coast in than California.

    Thats the news.

    - GS

Fri:  Decided I *really* need to rebuild dialogs, they are all inter-tangled.  I need to be able to access the second mercenary spawn and merchants in tavern, and the old dialogs had some offset that as yet I have not found where the "Warsword Conquest" original dialog works, the (WC+Diplomacy+Rigale) dialog fails, and trying to re-interpolate the two means bubble sorting every last paragraph so they stop misaligning when comparing text.  I spent half of yesterday to get to line 4000, and half of today to get to line 7300.  There are 41,000  lines!  I am slightly getting a system going for moving them though so hopefully I'll be slightly faster for next week.  Today is a holiday and my wife won't let me do work, which she considers a waste of my time.  I'll thus get nothing much done.  How I long for the shelter of my "day job".  Ah well.
 
posted here so fewer people are bothered by my needing to log things before I forget them, so someday I can make changelogs.
  When you can't remember something that was clear a half hour ago you can tell me why posting notes to myself is narcissism.

Today's push  (v156 series B4  Phantasy 2018):    Hot Patch, no need to restart a v156 created character
1)
  Merge 9 ti_on_agent_hit triggers into a single trigger for magic weapons with spell-like proc's.
  Merge all 6 thrown spells with ti_on_agent_hit  triggers into a single trigger for magic spells, like the above.

  Reducing each and every glancing hit on each and every agent in battle (plus the horses they rode in on)  by 30+ different triggers
reduces the amount of overhead for each hit.  Although the difference looks subtle at a line by line script reading level, the Warband run time script interpreter has to perform considerable extra overhead each time a trigger is called and processed.  Reducing every hit by 30 or so triggers removes 30 or so times the overhead, which looks invisible to a casual modder.

  This overhead and the large number of somewhat hidden triggers that fire each time each agent is hit by even 0 damage attacks, helps Missile Swarm and Magic Missile with too many missiles causing multiple hits on one agent, stacking up the number of unprocessed and enqueued triggers to overflow the Warband handler for triggers, and this leads to a crash to desktop.  Although I stopped the crashes to desktop by removing multiple missiles, the delay in processing blocks not only more agents in battle but more time that each agent could be doing something useful, like swimming or flying, or fancy footwork, or animating their dodges.. etc.

  The proof of value for this strategy was shown in common_damage_system,  which combined {Dodge, Ironflesh, Unarmed Damage, and Stealth damage} into a single procedure instead of 3-4 individual procedures.  This allowed the result of one to modify the next, as they were inter-related.  Processing sped up by entering a procedure once instead of 4 times - for EVERY SWING that connected, including spells.  Within that routine were checks to immediately drop out of the procedure if a spell was the cause of an agent taking the damage, which leads to a "spells cannot be dodged" result but also stops wasting time when it was a spell.

  Changing this layer in-situ without having to change anything else allows test against a known load already built.
  Approximately 16 weapons/weapons categories with spell like properties, and spells need combining:

common_battle_diamond_skin  <--  needs to process first; if active skip all these others

  items but with triggers in mission_templates:
common_battle_sun_blade
common_battle_vorpal_sword
holy_avenger
flame_tongue
frost_brand
vampiric_blade
common_battle_mace_of_disruption

common_battle_wizard_staves

special_mounts_charge **
barbarian_rage

  spell effects with triggers in mission_templates:
common_battle_charm_undead
common_battle_magic_missile
common_battle_vampiric_bolt
common_battle_charm_person
common_battle_flame_arrow
common_battle_acid_arrow

also this only fires from  ti_on_shield_hit
common_battle_darkness_shield

2) Additionally TPE tournaments needed time shifting to be sunset or sunrise during night time so contestants can be seen more clearly.
This plus adding dodge/encumbrance checks and unarmed damage to tournaments was done 2 days ago but not really written clearly.

3) Balrog sword was firing two triggers: one for flaming sword and a second time for vorpal sword.  Now collapsed to a single flaming sword trigger.
  changed the order the magic weapons were processed to reflect the rarity of each item compared to next lowest in list.
      common items will be found more quickly and exit the trigger sooner, leading in overall reduction of latency in battle.

4) added a filter to block falling damage / indirect AoE spells from triggering hand weapons by
Code:
    ti_on_agent_hit,0,0, [
    (eq, "$g_magic_on", 1),
    ],[
        (store_trigger_param_1,":victim"),
        (store_trigger_param_2,":dealer"),
        (store_trigger_param_3, ":damage"),

    (assign, ":damaging_item_id2", reg0),       # reg0   melee weapon hitting (to filter spells aka ranged)
                                                # GS need to do this quickly before reg0 is trashed
    (agent_get_wielded_item, ":damaging_item_id", ":dealer", 0),    # GS <-- top priority is check to see if we should skip this trigger

     (try_begin),
           #wizard staves begin	 
           (is_between, ":damaging_item_id", "itm_gnarled_staff_p", "itm_necromancers_staff"),     # GS if its not in this range, stop wasting time here
                (eq,  ":damaging_item_id2", ":damaging_item_id"),   # GS filters spells or falling damage, which will have a different reg0 value
    with rest of the checks happening now, checking first if an item is in a specific range and skipping ahead to next (else_try),    if not...

5) Necromancer staff was doing no damage vs undead if the roll was too high for charm; the swing damage was not being passed through in the original code
Magic Missile damage was suppressed also in some conditions for the same reason; fixed.

6) Diamond skin heal is wasting bandwidth in a try_for_agents call placed every frame, which is a pity as very few agents actually HAVE a diamond skin effect happening, every frame or even 1 time in a battle.  If this were changed battles might lag less on weaker PCs.
This is the sort of thing I usually put in a list but since it executes every frame I should make a special list for it, which thankfully extra unused lists were declared for v156, one of the technical differences from v150.

  Researching further, ONLY THE PLAYER can currently be set to diamond skin status, although it is a nice concept for future right now it is a bit extreme to check up to 400 agents - their horses, their dead corpses still present as rag dolls, etc just on the off chance player has cast diamond skin cleric spell.  As it is now some direct spell effects, the initial spell damage from the "throwing weapon", any magic weapons that proc, any charged staves all skip damage if diamond skin is up.  However most likely unarmed damage and stealth attacks right now penetrate diamond skin.  It's an area that needs some "probing".  I'll turn off the trigger  diamond_skin_heal  for now and see if performance improves slightly.

7) fixed an error from the original code that would have crashed any sea battle using Wulf's "ship_battle" mission. 
  Not that we have sea battles...

8 ) Noticed player fly can go ahead and use the same key commands as deathcam but should conserve momentum if anyone is to really feel like they flew instead of floated.  If things quiet down I can enable this but there is no point right now.  It's been off since October but I realized PBOD does not have to conflict at all with a small tweak.

Status:  approved at Nexusmods.
  https://www.nexusmods.com/mbwarband/mods/6194?tab=files
 
Today really has been a busy day with Rigale changes at Phantasy 2018 v156 B5:

1)  Fixed an issue with spell effects in B4 failing:
6 spells were not being entered correctly.  The whole block was being skipped completely, so flame arrow, blackbolt, acid bolt, charm person, vampiric bolt, the sound effect (only) for magic missile were all getting skipped, so just the missile damage went through for these.
  Also barbarian rage would have been skipped.

2) Added the following Rigale crafting changes:
  Leatherworker:
      Leather Greaves
      Swashbuckler Hat        adjusted protection from 25 ->  27

  Woodworker:
      Elite Cavalry Shield
      War Bow
      Ambush Bow              increased damage by 1  24 -> 25
      War Spear
 
  Smithing:
      Sarranid Helmet  (red)  increased defense and price  36 -> 38
      Sarranid Helmet  (gold)  increased defense and price  36 -> 38
      Sarranid Veiled Helmet    lowered weight on this and heavy veiled helmet; changed defense on non-Rigale heavy veiled helmet
      Sarranid mailed boots    increased defense from 30 -> 32

      light morningstar            this is the Blazing Hand difficulty 10 morningstar with crush through
      morningstar                  normal difficulty 13 morningstar with native slightly longer reach and crush through

  edited items to reduce difficulty requirements on these helmsKettle hat, Morion, and Chapel de Fer
      slight weight increase on open salet  2.25 -> 2.5

3) fixed a glowing helm issue at Blazing Hand Vanquishers caused by my clumsiness

4) adjusted Rigale crafting recipes to be aware of item modifiers on ingredients, with the most important ingredient listed first in terms of influence it has on the overall crafting and the least important ingredient listed last.  Updated documentation to match recipe changes. There are [32 smithing + 28 woodcrafting + 32 Leatherworking] Rigale recipes ((thus 92 recipes, not counting food drying (6) which are separate from the Rigale crafting). 

  Changed many recipes in terms of material requirements, generally somewhat lowering the number of items needed in order to craft.
  updated THIS spreadsheet for use in a player handbook sometime: 
      https://drive.google.com/file/d/1QwtowXGrvh7gB1LTCX3-NtvjbTF4_maw/view?usp=sharing

5) added "script_player_has_item_get_modifier" to search the inventory for item modifiers for the items to be used in crafting.
    As there are > 38 item modifiers, this needed some abstraction.  In brief, an item used as an ingredient in crafting has a value between -3 and +4
from item modifiers, with every modifier mapping to a value in that range.  This allows handling food, mounts, weapons, armor, raw materials, drinks, etc.
Items that are "primary" materials add their item modifier weights to a net adjust; secondary ingredients have their weighted imod values divided by 2 and added to the net adjust; and the third category ingredients the value weights are divided by 3 and added.  Now when you look at a recipe and 3 different ingredient types are shown, the first shown is most significant and last shown is least significant.

    This script will also automatically pre-clean any rotten food so that food drying can use the item modifier system also.
    Changed the way items are removed during crafting to skip items worn by player that otherwise could have been used in a crafting recipe.
    Also changed the check Rigale makes to count items available to craft with to skip items equipped by player.

  by the way, test characters are at  https://drive.google.com/drive/folders/1IpoRh0Pu3j3cvyNwMnEZk9SLYN2uT2lW?usp=sharing
my best crafter is at  https://drive.google.com/file/d/1OH-t_d0IwNrtbAGx40NIe2FJN7IGA3Rv/view?usp=sharing

6) Rigale recipes for components {hides from leather bits, furs from hides, leatherwork from hides, linens from flax, velvet from silk and dyes}
now can yield item mods "sturdy" and "thick" on exceptional rolls.  This in turn allows these items to have a positive effect on crafting when used as ingredients later.  Also, the recipe for making tools used to make a very short stack of tools; now the number of tools made is closer to a full stack bought in the open market.  As yet, high quality versus low quality tools do not influence crafting. 

  Added a simple horse armor submenu to leatherworker and smithing and it tests working, even placing an item modifier in the final created horse.
As with most of the mod, its a proof of concept more than a great game changer.  I've mostly been looking for a platform to validate systems level code, and completely unconcerned with the surface layer.  Admittedly, more recipes is "surface layer" stuff, but some of the new recipes are testing deeper changes, such as item modifiers providing feedback to crafting success (and it is a nuanced feedback at that).

7)  Reduced the retail selling price of certain Rigale craft-able items to reduce the desire to crank out a great many "lordly" and "masterwork" items for resale. They don't fall quite as often as it may seem, but certainly is a risk with ingredients feedback and high enough skill (my test character is maxxed)  https://drive.google.com/file/d/1OH-t_d0IwNrtbAGx40NIe2FJN7IGA3Rv/view?usp=sharing
Thankfully I have my cheat sheet excel file to show which items need a price check.  Discounting these items is yet another reason to not worry about crafting until your skills are fair to high (8+ minimum even for simple recipes, although there are some starter recipes that use few components it will always be cheaper to attend guild classes than buy any component.  The "I'll grind it myself thanks" school of learning is mainly for foraged items, where once again I recommend school learning until skills are 8+.  There is a tutorial at https://forums.taleworlds.com/index.php/topic,372473.0.html    as a reminder to those that never really looked for it.

8 ) removed one of the exploration simple_triggers from Rigale to test whether it influences the need to often click twice to enter castles/towns.
The down side is no more money & experience for entering the town/castle/village for the first time, but possible benefit of less likely to have to request to enter town/castle/village twice...

9) adjusted the Diplomacy "buy food automatically" to de-select foods that can go rotten, and drinks, in order to better fit the list of foods within the presentation.  Thus, skipping: {fruit, grapes, butter, beef, chicken, pork, (raw) fish}, and thus freeing 7 slots.  Of this list, pork, grapes, fruit, (raw) fish, and beef could have been dried using the camp: action: preserve some of my food menu item.

  In test, 2 foods wrap around to where they can't be selected, but at least the de-selection is working and the shorter list of "foods" allows some use of this ability.  It's not optimal so far as topping off foods within a stack but if you have 0 of a food it does fine to buy a food.  I'd like some cleverness to select the item mods based on how well I am (is my food stack for that item type half full out of 1?  is it set to buy 2?  Is there a greater less item mod offered than what I have now?  Am I using cheap foods and now the merchant wants to sell me one item for 20 times normal?  There should be a rules based schema to auto-resolve these).  At least it works better now than before. I finally decided I needed it for my own play through...

Status:  approved at NexusMods
  https://www.nexusmods.com/mbwarband/mods/6194?tab=files
 
Status
Not open for further replies.
Back
Top Bottom