Jump to content

tracktwo

Members
  • Posts

    317
  • Joined

  • Last visited

Everything posted by tracktwo

  1. I'm not entirely sure I follow your loop there, but you should be to steal the "I" variable as it's only used in the non training roulette case: I = m_arrRandomPerks[3*(branch-1) + Option]; while (m_kSoldier.HasPerk(I) { // I = roll a new random perk } return I; EDIT: However, just returning a random perk # here is probably not what you want as each time this function is called you'd get a different result. Worse, when it populates the tree in the UI it calls this function to get the perks and the soldier will obviously have the ones you've already chosen and it'd re-roll them. This really needs to be done at the point where the perk tree is rolled or when the "free" perks are added otherwise you can't distinguish between a perk they chose from an earlier rank and one that was granted for free.
  2. XGStrategySoldier.AssignRandomPerks is the one that handles training roulette IIRC. You can put a check for perks the character already has there, or in IsRandomPerkValidToAdd(), which is called by AssignRandomPerks. But this presupposes that the custom perks are assigned to the character before the perk trees are rolled, which I'm not sure is the case. If that's the case though you can possibly call AssignRandomPerks again after the custom perk has been added, or special case certain perks in IsRandomPerkValidToAdd based on soldier name.
  3. I haven't been super excited about working on it, to be honest, and let my Flash subscription lapse. Currently I've been focusing on other areas and I think I might do a bit more work on the Campaign Summary but I'm not sure I'll tackle either of the other views in the near future just because it's such a big job and requires a lot more flash work. Possibly if these features are still missing from XCOM2 I'll take a look at it again then, or maybe if I find myself sufficiently bored between now and then. Like all my mods, the complete sources for campaign summary are up on github (https://github.com/tracktwo/campaign-summary) so anyone who wants to take this and run with it is more than welcome.
  4. It sounds like the generated project isn't using the necessary settings. That's not the most helpful diagnostic in the world but it looks to me like you might need a -std=c++11 added to your compiler options, cause "enum class" is a c++11 feature. I'm not entirely sure how to get that option set in XCode, but I'd have expected it to be set by default. If you're using an older version of XCode with an old compiler it might not be enabled by default or even supported - I did a quick google search and saw some Stack Overflow questions about it from 2011, but that's quite old now.
  5. From the upkutils readme on github: So even if you can't get wxWidgets installed you should be able to build patchupk. I'm not a cmake expert but taking a quick look at the file it looks to me like it'll still build everything else, you'll just get the message about wxwidgets not being found and it won't build DeserializeAll.
  6. AFAIK there is no logic to control this because it's the only attack that chrysallids have so they have nothing else to choose. But, you can change the chance of a chryssalid kill resulting in an egg implant. See XGUnit.OnKill, there's a parameter called iZombifyChance and it defaults to 100.
  7. You might have an easier time getting started just using the command line upkutils and ignore patchergui for now. PatcherGUI is just a UI that sits on top of upkutils and is nicer to use (if you're into that kind of thing) but isn't strictly necessary. You can install any "patchergui" mod just by using PatchUPK, and the upkutils should have fewer dependencies than patchergui. If you do want the UI, you can probably install wxWidgets through MacPorts and build patchergui after that. It's been a long time since I've had a mac, though, so I don't remember all the details.
  8. Not for the campaign summary, no. But I will have some news about JumpStart in a few days, though.
  9. Most of those things will start applying as soon as you make the change, but it won't affect soldiers who are already wounded, just anyone who gets hit from now on.
  10. My plan is to replace all those hardcoded strings with localized ones read from a .int file. My personal preference is to leave everything as minimalist plain text, but by moving them all to .int files they can be completely customized with whatever html tags you like to adjust colors and insert images (assuming you have a img path to the image you want). Basically, they should be able to be entirely revamped with a ReCLR for the campaign summary. This will also allow translation to languages other than english if anyone cared to do so.
  11. If it's recent saves it's likely the beginning of the month bug. Your saves are still there, just sorted incorrectly. Scroll down a bit further and you should see them.
  12. Cool. Does it colour code the alien HP/armor in LW or does it show up just as all the same?
  13. I don't need SVG, no, just PNG is fine for these complex icons. I'm not sure about the exalt ones with the letters, it might just be better to use the originals without distinguishing the two mission types on the icon. Sorry I've been a bit slow in responding, I'm going to be getting back to working on this in another few days, I have another little mini-project to complete first.
  14. I've added in a few more of the icons. I like the more stylized ones for exalt, council, terror, abduction, etc, but the UFO ones don't really fit the theme IMHO. They look to me out of place on the map as they're a little too textured compared to everything else: Council/exalt: UFO: Also I'm not sure about the black bursts around the icons, it looks ok on the abduction ones, I think, but detracts a bit from the others, especially exalt IMHO. In other news, we can determine the sub-type of the council mission so it's possible to have specific icons for bomb missions, for example. I don't know if the other sub-types need distinct icons, but bomb missions are pretty distinctive.
  15. I can downscale the images to arbitrary points in the flash so it doesn't matter too too much what the original resolution is other than there will be a considerable loss of detail so more stylized is better than trying to be too realistic with lots of tiny details. I don't think we need to distinguish city vs. wilderness crash sites, as it's just random as opposed to actually considering *where* the UFO crashed - you can shoot down a UFO in the extreme north of Canada or Russia and get a "city" crash if the dice happen to roll that way. For that matter you can shoot it down in the ocean or half the world away from the country it's supposedly in. Also escaped is not necessarily "escaped", it'll be used for any UFO that completes its mission without getting shot down so it doesn't necessarily need to be "escaping" from anything. Not sure about the alien base icons, maybe an alien head over the little "burst"? Could distinguish covert extractions from data recoveries in the icon if you feel up for 2 exalt ones. Plus the exalt base raid. I got the icons hooked up to the map now and they appear to be displaying mostly correctly. I need to play a bit more with the scaling as they're a little stretched at the moment. I'm going to try to treat them exactly as the ufo icon currently is and hopefully that'll improve things.
  16. Cool, thanks. I don't have them hooked up to the actual map yet, but I did quickly just drop them into the flash movie to get them up on the map in a fixed place and they look pretty good to me scaled down to 32x32. I was worried the interceptor would be a little too colourful, but it looks OK to me.
  17. Do you happen to know which package Icon-Crit lives in? I did a quick search but couldn't find it. Eventually I'd like to have specific icons for different mission types and for UFOs and interceptors shot down, but if they're custom icons I don't want them to be based off any of the existing Firaxis assets, they'd have to be completely original.
  18. Glad you got it working, that's great to hear! I was worried I'd have forgotten a file or a setup step in the installation instructions :smile: Quiet, Bradford doesn't need to be re-installed each time. As you guessed it's because the files I patch in that mod are not modified by LW so it doesn't get automatically uninstalled each time you upgrade/reinstall LW. You only need to reinstall it after a steam cache validation. I used one of the saves you sent me (that had ReCLR present) for a lot of testing so it should be entirely compatible with it. Let me know if you see any bugs with it, though. EDIT: I wasn't sure why your UFOs were showing up so tiny, but then I remembered you mentioned you had shrunk them? I also scale them down 50% when putting them on the map so yours are extra tiny.
  19. I'll take a look at some other available icons to see what makes sense to borrow. Unfortunately the hologlobe mission icons for things like abductions, crashes, landings, etc are 3d meshes and so aren't very useful for this. I'm not sure I follow about the ID tags. Do you mean put an id number before every item in the list? Not sure what value that'd give because the numbers would be entirely arbitrary and wouldn't really cross-reference with anything. And also, not sure what you mean about the button list? I already hide the entire menu when in timeline view so it doesn't interfere with the country boxes or map. I still need to hide the credits and income box though. Good catch with Brazil! It was greyed out due to a bug. The game stores panic values internally as a number from 0-99 but in the UI it wants a value from 1-100. The journal records the internal 0-99 value so when a country dropped to minimum panic it'd update the UI with a 0 value instead of a 1 value as it was expecting. Now it doesn't grey out, and prints the 1-100 scaled values everywhere.
  20. I believe LW sets the first slingshot mission to happen sometime in May of the first year. They're definitely compatible, but you won't get the missions for a couple months.
  21. I think I'm due for a status update. Here's a screenshot of the current state of the timeline: A few notes about it: The log is actually two-column, but the default one from Firaxis fills the left column before spilling to the right, so when there are a few items but not enough to split to the 2nd column things look weird. I'm looking into changing this to alternate between columns as entries are added so it's more balanced.The panic bars, withdrawn countries, and satellite coverage are "live" and updated as the day is switched.The slider and buttons aren't quite centered since I switched back to the 'square' view instead of angled edges on the slider. Will clean that up later.I'm using the UFO icon as a placeholder for the mission locations for now, for all mission types.Many (over a dozen) event types are recognized and recorded by the Journal system. Most don't do anything except display a string on the screen for the timeline, but will do more when I get into the graph/summary view data aggregation. The only special ones for the timeline right now are missions, satellite launches, satellites shot down, countries withdrawing, and panic changes. These update the world map and country boxes appropriately.Playback now works as expected, with a default refresh rate of 1 day per second. Not every day has entries, only days where things happen are considered. On playback the play button switches to a pause button, and dragging the slider seeks through the campaign. I still have a few additional items on my todo list, but I hope to be able to get out a first version of the timeline view within a week, time to work on this permitting. There are som things I noticed and need to fix in the actual raw journal entry records. I want to patch all of these before the fist release so new campaigns work better. Most of these are relatively harmless for the timeline view but will be an issue for the graph/summary views because real data are lost. Council mission rewards are bugged due to a localization issue (noted before) - I can't tell if a council reward gave you engineers or scientists, for example. Cash is usually easy to identify because the values are large. Record the resource as an enum value to avoid the localization issue.The starting country is not recorded but can be inferred by the position of the first satellite.No entry is generated when a satellite is shot down. I currently have a heuristic that looks for panic increases of the same amount as a shot down satellite, but this might be unreliable for people using modded INI files to adjust the panic value. Add a new specific entry for this.Entries are generated whenever an exalt cell is placed, but it doesn't record where. Add that.Entries are generated whenever a soldier trains a psi ability, but it doesn't record which ability. Add that.Entries are generated whenever an interceptor is purchased, but it doesn't record which continent. Add that.No entry is generated for interceptors shot down. Add that.No entry is generated for interceptors that are transferred. Add that. (These 3 entries would let me put interceptor icons on the timeline as they appear in the sit room).No entry is generated for UFOs that are shot down. Add that.No entry is generated for missions that expire. Add that. But, things are moving smoothly now, all the R&D work is done for the timeline and it's just actually doing the rest of the coding.
  22. I think I know the problem. I had a very similar problem with JumpStart with trying to get interceptors working properly - it took me hours to figure out what was going wrong. The bug here is that your mutator is hooking too early, during BuildTechs, but during BuildTechs the lab facility hasn't yet been attached to the HQ. This is why you are getting the "accessed None 'm_kLabs' warning. BuildTechs is called from XGTechTree.Init(). XGTechTree is a member of XGFacility_Labs, which is set up in XGHeadquarters.CreateFacilities(). But the way that it does this initialization is by Spawning the facility into a local variable, calling Init() on that facility, and *then* assigning it to the facilities array. So at the point where XGTechTree is building the techs, the lab isn't hooked up to the HQ. Your mutator then fires and tries to find the XGTechTree object via the labs in the HQ, but the labs aren't there yet. A couple of options: Defer the mutator until some time later after the original tech tree has been built, or instead of looking up the tech tree instance through the labs you can look it up with something like: local XGTechTree kTechTree; foreach AllActors(class'XGTechTree',kTechTree) { BuildAltTechs(kTechTree); break; }
  23. The header box already exists, using the objectives/continent info box. This one is blue and slightly taller than the covert ops yellow one, so there is more space. As XMarksTheSpot noted above, most entries are not very long, so the box can be narrowed to about half the screen to make room for something else (not sure what yet) or I can switch to a two-column view and use the entire width. I'm leaning toward the latter because days can often have lots of stuff associated with them and this would require a lot of vertical scrolling if only half width is used. I am only using the raw journal text as a placeholder for now, I plan to replace it with custom text for each event as I handle them. The main reason being most of the raw journal entries aren't localized but some pieces of them are. So by completely replacing the text I can better localize the mod, assuming anyone wants to volunteer for translations.
  24. Latest status: - I wrote the first version of the JournalProcessor class that eats the journal entries and records them in a form that's easier to use. This spawns when the strategy game loads and runs in the background on a timer, consuming journal entries until there are none left. - Currently the only thing it "processes" is it parses the date associated with each journal entry and builds a "day" data structure that records the raw strings for all events of that day so they can be displayed in the text box. It also recognizes panic change events and records the panic level for each country. So, I now have a data structure that records accurate panic level for each country at any date in the campaign. - Updated the Timeline UI to read the day data structures to dump the raw entries to the text box and also to update the country info boxes to show the appropriate panic levels for the day as you step through with the forward and back buttons. This works well and is kind of cool to watch the bars go up and down over time, especially when there is a big jump. All of a sudden Australia went red and the other Asian countries took big jumps. I don't have mission info showing yet in a reasonable way, but that was pretty obviously a terror mission in Australia - and one I didn't rescue many civvies on :) - Next up: More country info state - accurately reflect the satellite state of each country, whether or not they have withdrawn. Also update the world map for these events (green or red overlays) and update the doom tracker. - After that I plan to move on to getting missions showing nicely on the map.
  25. Yes, the first one is the will stat on the character in the current combat. It'd be relevant only if they get revived. The second one is the permanent stat on the character that gets copied back to the strategy game after combat ends. So, if you just took the 2nd one out altogether but left the first one they'd have a will penalty for that combat if you revived them, but that penalty would disappear at the end of combat.
×
×
  • Create New...