IEnumerator EnterPortalCo() { var player = PlayableCharacters.GetPlayerInScene(); player.SetIsHumanControlled(false, constraints: RigidbodyConstraints2D.None, showChangeEffect: false); player.DisableCollider(); float effectTime = 1.0f; float timeEnd = Time.unscaledTime + effectTime; Vector3 portalCenter = transform.position + Vector3.up * 1.5f; collider_.enabled = false; enterSound_.Play(); var baseScale = player.transform.localScale; while (Time.unscaledTime < timeEnd) { float t = Mathf.Clamp01(1.0f - ((timeEnd - Time.unscaledTime) / effectTime)); float negT = 1.0f - t; cameraShake_.SetMinimumShake(1); var playerPos = player.transform.position; var direction = portalCenter - playerPos; player.SetForce(direction * 20); player.transform.localScale = baseScale * negT; player.transform.localRotation = Quaternion.Euler(0, 0, t * 360 * 5); yield return(null); } GameEvents.RaisePlayerEnteredPortal(); OnPlayerEnter?.Invoke(); }
//Add the item's functionality down here! I stole most of this from the Stuffed Star active item code! protected override void DoEffect(PlayerController user) { //Activates the effect PlayableCharacters characterIdentity = user.characterIdentity; if (characterIdentity != PlayableCharacters.Robot) { AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", base.gameObject); float MaxHP2 = user.stats.GetBaseStatValue(PlayerStats.StatType.Health); MaxHP2 -= 1; user.stats.SetBaseStatValue(PlayerStats.StatType.Health, MaxHP2, user); float currentCurse = user.stats.GetBaseStatValue(PlayerStats.StatType.Curse); currentCurse += 1f; user.stats.SetBaseStatValue(PlayerStats.StatType.Curse, currentCurse, user); float currentDamage = user.stats.GetBaseStatValue(PlayerStats.StatType.Damage); currentDamage *= 1.20f; user.stats.SetBaseStatValue(PlayerStats.StatType.Damage, currentDamage, user); } else if (characterIdentity == PlayableCharacters.Robot) { AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", base.gameObject); user.healthHaver.Armor = user.healthHaver.Armor - 2; float currentCurse = user.stats.GetBaseStatValue(PlayerStats.StatType.Curse); currentCurse += 1f; user.stats.SetBaseStatValue(PlayerStats.StatType.Curse, currentCurse, user); float currentDamage = user.stats.GetBaseStatValue(PlayerStats.StatType.Damage); currentDamage *= 1.20f; user.stats.SetBaseStatValue(PlayerStats.StatType.Damage, currentDamage, user); } //start a coroutine which calls the EndEffect method when the item's effect duration runs out }
// Token: 0x06000060 RID: 96 RVA: 0x000054A4 File Offset: 0x000036A4 public void Interact(PlayerController interactor) { bool flag = TextBoxManager.HasTextBox(this.talkPoint); if (!flag) { this.m_canUse = ((this.CanUse != null) ? this.CanUse(interactor, base.gameObject) : this.m_canUse); bool flag2 = !this.m_canUse; if (flag2) { //TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 2f, "Please come back later", interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false);/* PlayableCharacters characterIdentity = interactor.characterIdentity; bool flag3 = characterIdentity == PlayableCharacters.Robot; if (flag3) { TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 2f, "Hey! You're not the right robot get out of here!", interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false); } else { TextBoxManager.ShowTextBox(this.talkPoint.position, this.talkPoint, 2f, "The guy who programmed me was to lazy to let you undo this...", interactor.characterAudioSpeechTag, false, TextBoxManager.BoxSlideOrientation.NO_ADJUSTMENT, false, false); } base.spriteAnimator.PlayForDuration("talk", 2f, "idle", false); } else { base.StartCoroutine(this.HandleConversation(interactor)); } } }
public static bool AddNewCharacter(string prefix, PlayableCharacters character) { bool status = false; if (ETGModMainBehaviour.Instance?.gameObject != null) { foreach (Component component in ETGModMainBehaviour.Instance.gameObject.GetComponents <Component>()) { if (component.GetType().ToString().ToLower().Contains("charapihivemind")) { var _characters = (Dictionary <PlayableCharacters, string>)ReflectionHelper.GetValue(component.GetType().GetField("characters"), component); var _modPrefix = (string)ReflectionHelper.GetValue(component.GetType().GetField("modPrefix"), component); if (_characters.ContainsKey(character)) { Debug.LogError($"CharApi ({prefix}): Warning! two characters have the same id ({(int)character})! this is very very bad please inform {prefix}/{_characters[character]}"); } else { _characters.Add(character, prefix); status = true; } } } } return(status); }
/// <summary> /// Sets <paramref name="character"/>'s <paramref name="flag"/> value /// </summary> /// <param name="character">Target character</param> /// <param name="flag">Target flag</param> /// <param name="value">Value to set</param> public static void SetCharacterSpecificFlag(PlayableCharacters character, CustomCharacterSpecificGungeonFlags flag, bool value) { if (AdvancedGameStatsManager.HasInstance) { AdvancedGameStatsManager.Instance.SetCharacterSpecificFlag(flag, value); } }
void StartGame() { var stringPath = HumanPlayerController.TrackedPath.AsString(); PlayerPrefs.SetString("LatestCampPath", stringPath); PlayerPrefs.Save(); // Init the run data var player = PlayableCharacters.GetPlayerInScene(); CurrentRunData.StartNewRun(); CurrentRunData.Instance.MaxLife = player.MaxLife; CurrentRunData.Instance.Life = player.Life; CurrentRunData.Instance.CurrentWeapon = player.CurrentWeapon.Id; CurrentRunData.Instance.BulletAmmo = 999; CurrentRunData.Instance.ShellAmmo = 999; CurrentRunData.Instance.StartingCharacterTag = player.tag; CurrentRunData.Instance.HasPlayerData = true; GameProgressData.CurrentProgress.QuestProgress.ApplyAllRewards(); CurrentRunData.StoreState(); HumanPlayerController.CanShoot = true; SceneManager.LoadScene(EnterPortalSceneName, LoadSceneMode.Single); }
private void ModifyIncomingDamage(HealthHaver source, HealthHaver.ModifyDamageEventArgs args) { PlayableCharacters characterIdentity = Owner.characterIdentity; if (characterIdentity != PlayableCharacters.Robot) { if (DoIReplace == true) { if (args.ModifiedDamage >= source.GetCurrentHealth()) { PlayerController player = GameManager.Instance.PrimaryPlayer; AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", base.gameObject); args.ModifiedDamage = 0f; float CurrentHealth = Owner.stats.GetStatValue(PlayerStats.StatType.Health); this.ImprovedMindControl(player); } } else { if (Owner.healthHaver.Armor == 1) { if (DoIReplace == true) { PlayerController player = GameManager.Instance.PrimaryPlayer; AkSoundEngine.PostEvent("Play_VO_lichA_cackle_01", base.gameObject); args.ModifiedDamage = 0f; this.ImprovedMindControl(player); } } } } }
void Awake() { if (instance == null) { instance = this; } }
private void PickStats() { if (hasPicked) { return; } else { PlayableCharacters characterIdentity = Owner.characterIdentity; Effect effect = BraveUtility.RandomElement(statEffects); statEffects.Remove(effect); if (effect.modifyMethod == StatModifier.ModifyMethod.MULTIPLICATIVE) { AddStat(effect.statToEffect, effect.amount, StatModifier.ModifyMethod.MULTIPLICATIVE); } else { if (effect.statToEffect == PlayerStats.StatType.Health && characterIdentity == PlayableCharacters.Robot) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, Owner); } AddStat(effect.statToEffect, effect.amount, StatModifier.ModifyMethod.ADDITIVE); } Owner.stats.RecalculateStats(Owner, true, false); hasPicked = true; } }
void StatSetCurrentCharacter(string[] args) { if (!_VerifyStatSetEnabled("stat set")) { return; } if (!ArgCount(args, 2)) { return; } TrackedStats?stat = _GetStatFromString(args[0].ToUpper()); if (!stat.HasValue) { Log("The stat isn't a real TrackedStat"); return; } float value; if (!float.TryParse(args[1], out value)) { Log("The value isn't a proper number"); return; } PlayableCharacters currentCharacter = GameManager.Instance.PrimaryPlayer.characterIdentity; GameStatsManager.Instance.m_characterStats[currentCharacter].SetStat(stat.Value, value); }
/// <summary> /// Stringify the character so it can be used "elsewhere". /// </summary> /// <param name="character">Character to stringify.</param> /// <returns>"Player" + character.ToString()</returns> public static new string smethod_0(PlayableCharacters character) { if (character == PlayableCharacters.Pilot) { return("PlayerRogue"); } return("Player" + character.ToString()); }
// Token: 0x060004F2 RID: 1266 RVA: 0x0002A553 File Offset: 0x00028753 protected override void DoEffect(PlayerController user) { AkSoundEngine.PostEvent("Play_OBJ_power_up_01", base.gameObject); PlayableCharacters characterIdentity = user.characterIdentity; this.StealthEffect(); base.StartCoroutine(ItemBuilder.HandleDuration(this, 1f, user, new Action <PlayerController>(this.BreakStealth))); }
public void AddPlayerHealthEvent(int amount, string source) { var player = PlayableCharacters.GetPlayerInScene(); HealthEvents.Add(new PlayerHealthEvent { MaxHealth = player.MaxLife, HealthBefore = player.Life, HealthChange = amount, ChangeSource = source, Time = Time.unscaledTime }); }
/// <summary> /// Gets <paramref name="character"/>'s <paramref name="stat"/> value. /// </summary> /// <param name="stat">Target stat</param> /// <param name="character">The character</param> /// <returns><paramref name="character"/>'s <paramref name="stat"/> value or 0 if <see cref="AdvancedGameStatsManager"/> doesn't have an instance</returns> public static float GetCharacterStatValue(PlayableCharacters character, CustomTrackedStats stat) { if (AdvancedGameStatsManager.HasInstance) { return(AdvancedGameStatsManager.Instance.GetCharacterStatValue(character, stat)); } return(0f); }
/// <summary> /// Gets <paramref name="character"/>'s <paramref name="flag"/> value /// </summary> /// <param name="character">Target character</param> /// <param name="flag">The character-specific flag to check</param> /// <returns><paramref name="character"/>'s <paramref name="flag"/> value or 0 if <see cref="AdvancedGameStatsManager"/> doesn't have an instance</returns> public static bool GetCharacterSpecificFlag(PlayableCharacters character, CustomCharacterSpecificGungeonFlags flag) { if (AdvancedGameStatsManager.HasInstance) { return(AdvancedGameStatsManager.Instance.GetCharacterSpecificFlag(character, flag)); } return(false); }
void Start() { enemy_ = Enemy.GetComponent <IEnemy>(); player_ = PlayableCharacters.GetPlayerInScene(); playerGO_ = player_.gameObject; system_ = GetComponent <ParticleSystem>(); Timing.RunCoroutine(EmitCo().CancelWith(this.gameObject)); }
public void OnPickup() { var player = PlayableCharacters.GetPlayerInScene(); weaponObj_.SetActive(true); FloatingTextSpawner.Instance.Spawn(player.transform.position + Vector3.up * 0.5f, weapon_.Name, Color.white); player.EquipWeapon(weaponObj_); Destroy(this.gameObject); }
public override void Pickup(PlayerController player) { PlayableCharacters characterIdentity = player.characterIdentity; bool flag = characterIdentity == PlayableCharacters.Robot; if (flag) { player.healthHaver.Armor += 1f; } base.Pickup(player); }
public static void SetCameraPositionToActivePlayer() { var playerInScene = PlayableCharacters.GetPlayerInScene(); if (playerInScene == null) { return; } SceneGlobals.Instance.CameraPositioner.SetPosition(playerInScene.transform.position); }
public static new string GetCharacterPathFromIdentity(PlayableCharacters character) { if (character == PlayableCharacters.Pilot) { return("PlayerRogue"); } if (character == PlayableCharacters.Soldier) { return("PlayerMarine"); } return("Player" + character); }
public override bool CanBeUsed(PlayerController user) { PlayableCharacters characterIdentity = user.characterIdentity; if (characterIdentity == PlayableCharacters.Robot) { return(user.healthHaver.Armor > 2); } else { return(user.healthHaver.GetMaxHealth() > 1f); } }
public override void Pickup(PlayerController player) { PlayableCharacters characterIdentity = player.characterIdentity; if (characterIdentity == PlayableCharacters.Robot) { bool hasntAlreadyBeenCollected = !this.m_pickedUpThisRun; if (hasntAlreadyBeenCollected) { player.healthHaver.Armor += 3; } } base.Pickup(player); }
/// <summary> /// Gets <paramref name="character"/>'s <paramref name="stat"/> value. /// </summary> /// <param name="stat">Target stat</param> /// <param name="character">The character</param> /// <returns><paramref name="character"/>'s <paramref name="stat"/> value</returns> public float GetCharacterStatValue(PlayableCharacters character, CustomTrackedStats stat) { float num = 0f; if (this.m_sessionCharacter == character) { num += this.m_sessionStats.GetStatValue(stat); } if (this.m_characterStats.ContainsKey(character)) { num += this.m_characterStats[character].GetStatValue(stat); } return(num); }
private void applyWeirdHealing() { PlayableCharacters characterIdentity = LastOwner.characterIdentity; if (characterIdentity != PlayableCharacters.Robot) { LastOwner.healthHaver.ApplyHealing(2); } else if (characterIdentity == PlayableCharacters.Robot) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, LastOwner); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, LastOwner); } }
IEnumerator <float> LevelUpCo(int newLevel) { var playerPos = AiBlackboard.Instance.PlayerPosition + Vector3.up * 0.5f; AudioManager.Instance.PlaySfxClip(LevelUpSound, 1); var player = PlayableCharacters.GetPlayerInScene(); if (player.Life == 1) { LootDropScript.Instance.SpawnHealth(1, playerPos, 5); } FloatingTextSpawner.Instance.Spawn(playerPos, "Level Up!", Color.yellow, 0.1f, 3); LightingImageEffect.Instance.FlashColor(LevelUpLightingSettings, LevelUpFlashCurve, 0.2f); yield return(0); }
private static bool CanUse(PlayerController player, GameObject npc) { //return false; PlayableCharacters characterIdentity = player.characterIdentity; bool flag = characterIdentity == PlayableCharacters.Robot; if (flag) { return(false); } else { return(player != NuclearShrine.storedPlayer); } }
protected override void DoEffect(PlayerController user) { //Activates the effect PlayableCharacters characterIdentity = user.characterIdentity; if (characterIdentity != PlayableCharacters.Robot) { AkSoundEngine.PostEvent("Play_OBJ_goldkey_pickup_01", base.gameObject); if (user.HasPickupID(423)) { amountToHeal = 2f; } else { amountToHeal = 1f; } //float healthPercentLog = user.healthHaver.GetCurrentHealthPercentage(); //ETGModConsole.Log("User Health Percentage is supposedly at:" + healthPercentLog); user.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero, true, false, false); user.healthHaver.ApplyHealing(amountToHeal); if (user.HasPickupID(166) && UnityEngine.Random.value < .50f) { keysToTake = 0; } else { keysToTake = 1; } user.carriedConsumables.KeyBullets -= keysToTake; } else if (characterIdentity == PlayableCharacters.Robot) { AkSoundEngine.PostEvent("Play_OBJ_goldkey_pickup_01", base.gameObject); if (user.HasPickupID(423)) { amountToHeal = 2f; } else { amountToHeal = 1f; } user.PlayEffectOnActor(ResourceCache.Acquire("Global VFX/vfx_healing_sparkles_001") as GameObject, Vector3.zero, true, false, false); user.healthHaver.Armor = user.healthHaver.Armor + amountToHeal; user.carriedConsumables.KeyBullets -= 1; } //start a coroutine which calls the EndEffect method when the item's effect duration runs out }
private void ModifyIncomingDamage(HealthHaver source, HealthHaver.ModifyDamageEventArgs args) { PlayableCharacters characterIdentity = Owner.characterIdentity; if (characterIdentity != PlayableCharacters.Robot) { if (source.Armor <= 0f) { if (args.ModifiedDamage >= source.GetCurrentHealth()) { if (source.GetMaxHealth() > 1f) { if (args.ModifiedDamage != 0) { if (source.IsVulnerable == true) { AkSoundEngine.PostEvent("Play_CHR_major_damage_01", base.gameObject); args.ModifiedDamage = 0f; StatModifier hpdown = new StatModifier(); hpdown.statToBoost = PlayerStats.StatType.Health; hpdown.amount = -1; hpdown.modifyType = StatModifier.ModifyMethod.ADDITIVE; Owner.ownerlessStatModifiers.Add(hpdown); Owner.stats.RecalculateStats(Owner, false, false); Owner.healthHaver.TriggerInvulnerabilityPeriod(); if (this.m_owner.PlayerHasActiveSynergy("Terrible Person")) { Owner.healthHaver.ApplyHealing(0.5f); } } } } } } } else { int bighead = UnityEngine.Random.Range(1, 8); if (bighead == 1) { args.ModifiedDamage = 0f; Owner.healthHaver.TriggerInvulnerabilityPeriod(); } } }
public static FoyerCharacterSelectFlag GetFlagFromIdentity(PlayableCharacters character, List <FoyerCharacterSelectFlag> sortedByX) { string path; foreach (var flag in sortedByX) { path = flag.CharacterPrefabPath.ToLower(); if (character == PlayableCharacters.Eevee && flag.IsEevee) { return(flag); } if (character == PlayableCharacters.Gunslinger && flag.IsGunslinger) { return(flag); } if (character == PlayableCharacters.Bullet && path.Contains("bullet")) { return(flag); } if (character == PlayableCharacters.Convict && path.Contains("convict")) { return(flag); } if (character == PlayableCharacters.Guide && path.Contains("guide")) { return(flag); } if (character == PlayableCharacters.Soldier && path.Contains("marine")) { return(flag); } if (character == PlayableCharacters.Robot && path.Contains("robot")) { return(flag); } if (character == PlayableCharacters.Pilot && path.Contains("rogue")) { return(flag); } } ToolsCharApi.PrintError("Couldn't find foyer select flag for: " + character); ToolsCharApi.PrintError(" Have you unlocked them yet?"); return(sortedByX[1]); }
public static GameObject GetPlayerPrefab(PlayableCharacters character) { string resourceName; if (character == PlayableCharacters.Soldier) { resourceName = "marine"; } else if (character == PlayableCharacters.Pilot) { resourceName = "rogue"; } else { resourceName = character.ToString().ToLower(); } return((GameObject)BraveResources.Load("player" + resourceName)); }
public GameData(int vol, PlayableCharacters species) { _playerSpecies = species; }