Tower Defense Starter Kit

Alright, so it’s not an upgrade tree with multiple maths. In that case, it won’t require a lot of modifications. What you could do is to add a new array of type ‘ETowerType’ to Struct_TowerData. Now within the Tower Data Array (in Game Instance class), add all supported second tier towers for each base tower using this new array member. Now when the ‘Widget_TowerConstructor’ class executes the ‘CreateTowerBuildButtons’ function to display the constructor UI buttons, you can add a check to ensure that buttons are created only for the tower types mentioned within the Tower Data Array element for base tower.

If you’re using two lasers, most of the extra work involved would only be centered around making sure that the new laser particle system gets updated alongside the original one. Since target acquisition is handled independently through a modular component based design, it shouldn’t require much in the way of changes, except providing it the new turret location (maybe somewhere between the muzzle locations of the two turrets). But not doing that shouldn’t crash the engine. So one potential reason for the crash might involve the new laser particle system getting invalidated at some point during runtime. You can try adding ‘Is Valid’ checks before accessing the particle system & see if the crash still persists.