mirror of
				https://github.com/vegapnk/RJW-Genes.git
				synced 2024-08-15 00:23:31 +00:00 
			
		
		
		
	Elasticising Gene now stays elastic, does not decay
This commit is contained in:
		
							parent
							
								
									84c0ab012e
								
							
						
					
					
						commit
						dd40ae40ee
					
				
					 2 changed files with 28 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -1,25 +1,36 @@
 | 
			
		|||
using LicentiaLabs;
 | 
			
		||||
using System;
 | 
			
		||||
using System.Collections.Generic;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Threading.Tasks;
 | 
			
		||||
using Verse;
 | 
			
		||||
 | 
			
		||||
namespace RJW_Genes
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// This Gene adds Licentia-Labs Elasticised Hediff to a Pawn. 
 | 
			
		||||
    /// Important: I had a HarmonyPatch first, similar to skipping cumflation, but the Stretching Logic is called quite a lot and for both pawns actually.
 | 
			
		||||
    /// Note: I had a HarmonyPatch first, similar to skipping cumflation, but the Stretching Logic is called quite a lot and for both pawns actually.
 | 
			
		||||
    /// Hence, I think choosing the Elasticiced Hediff was good as then everything is covered by "Licentia-Logic". 
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    public class Gene_Elasticity : Gene
 | 
			
		||||
    {
 | 
			
		||||
        
 | 
			
		||||
        private int ticksToReset = RESET_INTERVAL; 
 | 
			
		||||
        private const int RESET_INTERVAL = 60000; // 60k should be 1 day 
 | 
			
		||||
 | 
			
		||||
        public override void PostAdd()
 | 
			
		||||
        {
 | 
			
		||||
            base.PostAdd();
 | 
			
		||||
            this.pawn.health.AddHediff(Licentia.HediffDefs.Elasticised);
 | 
			
		||||
            // Doing it like this will add the hediff with a severity of ~0.5, but it will decay.
 | 
			
		||||
            // Hence we check with the Ticks to update.
 | 
			
		||||
            this.pawn.health.AddHediff(Licentia.HediffDefs.Elasticised); 
 | 
			
		||||
            ResetSeverity();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override void Tick()
 | 
			
		||||
        {
 | 
			
		||||
            base.Tick();
 | 
			
		||||
            --this.ticksToReset;
 | 
			
		||||
            if (this.ticksToReset > 0)
 | 
			
		||||
                return;
 | 
			
		||||
            this.ticksToReset = RESET_INTERVAL;
 | 
			
		||||
            ResetSeverity();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public override void PostRemove()
 | 
			
		||||
| 
						 | 
				
			
			@ -31,5 +42,15 @@ namespace RJW_Genes
 | 
			
		|||
            }
 | 
			
		||||
            base.PostRemove();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        private void ResetSeverity(float severity = 0.7f)
 | 
			
		||||
        {
 | 
			
		||||
            Hediff candidate = pawn.health.hediffSet.GetFirstHediffOfDef(Licentia.HediffDefs.Elasticised);
 | 
			
		||||
            if (candidate != null)
 | 
			
		||||
            {
 | 
			
		||||
                candidate.Severity = severity;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue