private int CharacterMaster_GetDeployableSameSlotLimit(On.RoR2.CharacterMaster.orig_GetDeployableSameSlotLimit orig, CharacterMaster self, DeployableSlot slot) { var result = orig(self, slot); if (slot == DeployableSlot.EngiTurret && increaseEngiTurretLimit) { var itemCount = self.inventory.GetItemCount(itemDef); if (itemCount > 0) { result += charges + chargesPerStack * (itemCount - 1); } } return(result); }
private int On_CMGetDeployableSameSlotLimit(On.RoR2.CharacterMaster.orig_GetDeployableSameSlotLimit orig, CharacterMaster self, DeployableSlot slot) { var retv = orig(self, slot); if (slot != DeployableSlot.EngiTurret) { return(retv); } var sp = self.GetBody()?.skillLocator?.special; if (!sp) { return(retv); } if (sp.skillDef == skills.First(x => x is EngiTurret2).myDef) { return(retv + 1); } if (sp.skillDef == skills.First(x => x is EngiWalker2).myDef) { return(retv + 2); } return(retv); }