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

Weapon info todos #25

Open
6 of 10 tasks
Sheep-y opened this issue Sep 30, 2018 · 8 comments
Open
6 of 10 tasks

Weapon info todos #25

Sheep-y opened this issue Sep 30, 2018 · 8 comments
Labels
enhancement New feature or request

Comments

@Sheep-y
Copy link
Owner

Sheep-y commented Sep 30, 2018

  • Refactor code to better handle multi-target and options on/off.
  • Refactor loadout list code.
  • Check stability and entrenched.
  • Non-Multi-Target: Shows enabled sum when no target, or enabled & will fire when has target.
  • Multi-Target: Shows enabled sum when no target, untargetted & will fire when target not on list, or targetted sum when target is on list.
  • Refactor stability format. Show "--" when no stability damage.
  • Refresh total damage when weapon panel is fully expanded... or bypass it and update in reverse?
  • Fix loadout wrapping for RT.
  • Show weapon heat?
  • Show multi-target id in total line.
@Sheep-y Sheep-y added the bug Something isn't working label Sep 30, 2018
@Sheep-y Sheep-y changed the title Weapon info bugs Weapon info todos Oct 7, 2018
@Sheep-y Sheep-y added enhancement New feature or request and removed bug Something isn't working labels Oct 7, 2018
@peddroelm
Copy link

peddroelm commented Oct 26, 2018

Hi,

Amazing work (I'm excited about the combat logger) but the code is far above my knowledge level and it will take me a long time to understand how most of it works :) .

I'm not certain you're still developing this - but if you do I would like to propose a feature request/question . The attack logger currently only logs to file ( AFIK) - would it be difficult to also dump to the in-game console to check results without leaving the game window / break 'too much' immersion? (enable the console / the hotkeys required to show/hide it .. maybe add an option for a transparent console - currently its modal and prevents play util you hide it again ) . Use its features for different colored text ?

@Sheep-y
Copy link
Owner Author

Sheep-y commented Oct 27, 2018

Yes still developing it, currently testing and bug fixing in preparation for a 3.0 beta. Yeah some features are quite complicated, the attack log being one of the most, since attack, damage, and crit happens at different stages of an attack sequence.

Writing it to console is not a bad idea, but I will need some time to evaluate see how it may work or can work.

@peddroelm
Copy link

console output would require less information ( ) to fit / format/ be readable on the space available
even breaking a shot info over 2 lines might be required { but doubling an assault mech 's alpha strike with SRMs and MGs required number of lines per attack also becomes problematic .. scrolling 2 pages for a single attack .. Either greatly condense/encode somehow or drop some feedback parameters to make it fit }

@peddroelm
Copy link

peddroelm commented Nov 1, 2018

messed around a bit with dnspy (attackdirector performattack)

using System;
using HBS;
using HBS.Collections.Generic;
using HBS.DebugConsole;
using HBS.Logging;
using UnityEngine;

    if (LazySingletonBehavior<DebugConsole>.HasInstance)
            {
                LazySingletonBehavior<DebugConsole>.Instance.LogMessage("WrongChannel",  sequence.attacker.UnitName + " PerformAttack for attackSequence LOGMessage: " + sequence.id.ToString(), LogLevel.Log);
      }

I'm not not certain it always shows on the console. There is a check inside LogMessage against a variable I cannot check - dnspy cannot compile logmessage ..


      DebugConsole.Message item = new DebugConsole.Message("WrongChannel", LogLevel.Log,  sequence.attacker.UnitName +  " PerformAttack for attackSequence messages add: " + sequence.id.ToString(), Color.green);
                LazySingletonBehavior<DebugConsole>.Instance.messages.Add(item);

this works and also gives log line color option (its what LogMessage calls anyway) but it bypasses the check for too many logmessages in queue .. Would need to also handle that or 'hope' :P other log messages fallowing the proper code path do the old messages clearing every now and then ..

Or use both calls to have colored text option but also not go over the message queue limit for too long (white text call would trim the queue length ..)

I should probably stop messing with stuff I don't understand and let the pros do it :)

@peddroelm
Copy link

peddroelm commented Nov 3, 2018

more thoughts on the console combat feedback format:

// state those parameters at the beginning ONCE - no need to repeat them for the.. 300 LRM shots
// signal clearly a beginning of new attack (caps / empty line / color / ******* etc ..)
Mech A attacks Mech B {facing} maybe even round/phase {called shot part if any} {maybe team/call-sign info but keep the line not overly long}

// Per Multishot Weapon (I think even without trying your log already outputs sorted like that because of the order the game calculates in .. maybe pulse lasers screw with this ..)
// List the group's CTH once . Can't list damage per shot here because Rogue Tech has RNG Damage weapons}
// signal clearly multishot weapon
Weapon SRM6 has CTH X% {maybe break down CTH factors in a concise/abbreviated way - maybe use a separate line for them - rogue tech can have a lot of CTH factors}

//ALL shots for the (potentially multi-shot) weapon
Roll to hit/correction/streak Location ODDS {H;LA;LT;CT ..etc} Where it hit OR MISS
{extra line in different/Yellow? color for inflicted damage ?} Damage to X1(X2 left), Damage to Y2(Y2 left).. Roll To Crit FAIL CRIT (skip roll where to crit)
{extra line in different/RED? color if it CRITs component with crit info } Is ammo explosion a difficult case ?

//
Heat And Stability changes should be logged no matter the source as/when they happen
(should have some lines during attack cycle on both attacker and target). But also when moving/jumping on the map outside active combat.

//
Pilot injuries should probably be listed with remaining pilot HP as/when they happen

This kind of combat log also gives players info on how 'close' the enemies misses were.

@Sheep-y Sheep-y mentioned this issue Nov 8, 2018
5 tasks
@Sheep-y
Copy link
Owner Author

Sheep-y commented Nov 8, 2018

Don't forgat morale logging, if we have heat and stability and wounds.

But I fear that this mod will stick with attack roll, location roll, crit roll, and slot rolls if it is to be implemented. (That's already a lot of rolls to code!) And it won't be too detailed - breakdowns is out of question. We are talking about over a hundred rolls for a typical heavy LRM boat attack, before we start thinking about the context of the rolls such as hit chance, crit chance, location table, or damage transfer. I tried to do a mockup even with simple info and it's alreay quite complicated, so I regret to report that yeah I won't put it in this release. But I'll keep doing the mockup and open a new ticket when I am happy with it.

But getting how close the enemies miss is a great idea. I wonder if it can be put into the MISS floatie.

@peddroelm
Copy link

peddroelm commented Nov 8, 2018

But getting how close the enemies miss is a great idea. I wonder if it can be put into the MISS floatie.

CTH for enemies feedback is also important when they hit (all those headshot tears on the forums :) )

@peddroelm
Copy link

peddroelm commented Nov 8, 2018

for multishot weapons this could be very readable summary report and not occupy a lot of space

group lrm 30 fired CTH = ..
16 hits 12 crits X misses
ARMOR .. damage to H, ..Damage to RT ... ... .. (totals per side per multishot weapon)
STRUCTURE damage to H , RT. LT .. (totals per side per multishot weapon)
crit destroyed large laser, large laser, etc .,..,.., damaged ..., .. ,,gauss rifle,
40 total stability damage . Target now at X stability and is (UN)steady / fallen ..
+X heat damage to attacker .. Attacker now at Y heat ..
+Z heat damage to target..Target now at Z heat ..
something like that

Could do shot by shot for less than say 10 shots weapons and use the summary report for the ones with more (LRMs ..). The file log will have shot by shot even for those for the extra curious ..


could use a similar total report for all the attack sequence at the end..
2.5 shots :P 500 hits, 2500 misses , .. etc etc ..


don't know hard it would be for you to do ..


mad dream territory

pillars of eternity has multi-level nested drop down capability in its log output .. Could expand this SRM group and then do extra expand for 1 shot to see the damage propagation/ multi crit etc.. But since this game lacks built in support for such feature .. it would be too much effort to implement ..

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants