protected override void OnDestroy() { ClearBlinkShadow(); m_CurrentlyBlinking = false; if (m_scarf) { Destroy(m_scarf.gameObject); m_scarf = null; } if (m_pickedUp && m_owner && ActiveFlagItems != null && ActiveFlagItems.ContainsKey(m_owner) && ActiveFlagItems[m_owner].ContainsKey(GetType())) { ActiveFlagItems[m_owner][GetType()] = Mathf.Max(0, ActiveFlagItems[m_owner][GetType()] - 1); if (ActiveFlagItems[m_owner][GetType()] == 0) { ActiveFlagItems[m_owner].Remove(GetType()); } } if (m_owner != null) { PlayerController owner = m_owner; if (afterimage) { Destroy(afterimage); } afterimage = null; } base.OnDestroy(); }
public override DebrisObject Drop(PlayerController player) { DebrisObject debrisObject = base.Drop(player); ClearBlinkShadow(); m_CurrentlyBlinking = false; m_cachedBlinkPosition = player.transform.position; if (ActiveFlagItems[player].ContainsKey(GetType())) { ActiveFlagItems[player][GetType()] = Mathf.Max(0, ActiveFlagItems[player][GetType()] - 1); if (ActiveFlagItems[player][GetType()] == 0) { ActiveFlagItems[player].Remove(GetType()); } } if (m_scarf) { Destroy(m_scarf.gameObject); m_scarf = null; } if (afterimage) { Destroy(afterimage); } afterimage = null; debrisObject.GetComponent <ExpandRedScarf>().m_pickedUpThisRun = true; return(debrisObject); }
public override void Pickup(PlayerController player) { if (m_pickedUp) { return; } m_CurrentlyBlinking = false; m_cachedBlinkPosition = player.transform.position; // if (player.IsDodgeRolling) { player.ForceStopDodgeRoll(); } if (ScarfPrefab) { m_scarf = Instantiate(ScarfPrefab.gameObject).GetComponent <ScarfAttachmentDoer>(); m_scarf.Initialize(player); } if (!ActiveFlagItems.ContainsKey(player)) { ActiveFlagItems.Add(player, new Dictionary <Type, int>()); } if (!ActiveFlagItems[player].ContainsKey(GetType())) { ActiveFlagItems[player].Add(GetType(), 1); } else { ActiveFlagItems[player][GetType()] = ActiveFlagItems[player][GetType()] + 1; } afterimage = player.gameObject.AddComponent <AfterImageTrailController>(); afterimage.spawnShadows = false; afterimage.shadowTimeDelay = 0.05f; afterimage.shadowLifetime = 0.3f; afterimage.minTranslation = 0.05f; afterimage.dashColor = Color.black; afterimage.maxEmission = 0f; afterimage.minEmission = 0f; afterimage.OverrideImageShader = ShaderCache.Acquire("Brave/Internal/DownwellAfterImage"); base.Pickup(player); }