public FaceMaterial([NotNull] CompFace compFace, [NotNull] PawnFaceGraphic pawnFaceGraphic) { this._compFace = compFace; this._pawnFaceGraphic = pawnFaceGraphic; this._pawn = this._compFace.Pawn; this.Flasher = this._pawn.Drawer.renderer.graphics.flasher; }
static void Prefix(DamageFlasher __instance, DamageInfo dinfo) { if (__instance is ZombieDamageFlasher zombieDamageFlasher) { zombieDamageFlasher.dinfoDef = dinfo.Def; } }
public override void Initialize() { this.Flasher = this.Pawn.Drawer.renderer.graphics.flasher; // this.feetTweener = new PawnFeetTweener(); base.Initialize(); }
static void Prefix(DamageFlasher __instance, DamageInfo dinfo) { var zombieDamageFlasher = __instance as ZombieDamageFlasher; if (zombieDamageFlasher != null) { zombieDamageFlasher.dinfoDef = dinfo.Def; } }
static void Postfix(DamageFlasher __instance, Material baseMat, Material __result) { if (__instance is ZombieDamageFlasher zombieDamageFlasher && zombieDamageFlasher.dinfoDef == Tools.ZombieBiteDamageDef && __result != null) { var damPct = DamageFlashTicksLeft(__instance) / 16f; __result.color = Color.Lerp(baseMat.color, greenDamagedMatStartingColor, damPct); } }
void Start() { playerController = FindObjectOfType <PlayerController>(); currentHealth = startingHealth; rend = GetComponent <Renderer>(); storedColor = rend.material.GetColor("_Color"); flasher = GetComponentInChildren <DamageFlasher>(); pointScript = FindObjectOfType <PointScript>(); soundManager = FindObjectOfType <SoundManagerScript>(); }
static void Postfix(DamageFlasher __instance, Material baseMat, Material __result) { var zombieDamageFlasher = __instance as ZombieDamageFlasher; if (zombieDamageFlasher != null && zombieDamageFlasher.isColonist && zombieDamageFlasher.dinfoDef == ZombieDamageFlasher.zombieBiteDamageDef && __result != null) { var damPct = zombieDamageFlasher.damageFlashTicksLeft.GetValue <int>() / 16f; __result.color = Color.Lerp(baseMat.color, greenDamagedMatStartingColor, damPct); } }
private static int DamageFlashTicksLeft(DamageFlasher damageFlasher) { // copied from DamageFlasher.DamageFlashTicksLeft return(GetterSetters.lastDamageTickByRef(damageFlasher) + 16 - Find.TickManager.TicksGame); }