private void Start() { initialPosition = transform.position; initialRotation = transform.rotation; pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); lockedIn = false; }
// Use this for initialization private void Start() { lockedIn = false; anim = GetComponent<Animator>(); pointerControl = GameObject.Find("PointerRoot").GetComponent<PointerControl>(); pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); initialPosition = transform.position; initialRotation = transform.rotation; }
// Use this for initialization private void Start() { initialPosition = transform.position; initialRotation = transform.rotation; teaCollected = false; inRange = false; lockedIn = false; teapot = GameObject.FindGameObjectWithTag("Teapot").GetComponent<TeapotScript>(); pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); teaClump = GameObject.Find("TeaClump").renderer; }
public void Drop() { if(weapon.objName.Equals("rocketlauncher")){ weapon.GetComponent<RocketLauncher> ().StopReload(); } if(weapon.objName.Equals("ak47")){ weapon.GetComponent<AK47> ().StopReload(); } nearbyPickup = weapon.gameObject.transform; moveCont.anim.SetBool ("Holding", false); weapon.Drop (); weapon = null; armLSR.sprite = armIdleRes; armRSR.sprite = armIdleRes; Vector3 theScale = armR.transform.localScale; theScale.x *= -1; armR.transform.localScale = theScale; arms.transform.position = armAnchor.transform.position; }
void Start(){ fishStats = GameObject.Find ("Player").GetComponent<PickupObject> (); colorControl = GameObject.Find ("Outline").GetComponent<outlineLerp> (); fillNarrativeString (); tutText = tutorialText.GetComponent<Text> (); questCompleteSound = GameObject.Find("Player").transform.Find ("questCompleteSound").GetComponent<AudioSource> (); tubeBreakSound = GameObject.Find("Player").transform.Find ("tubeBreak").GetComponent<AudioSource> (); borkDialogueSound = GameObject.Find("Player").transform.Find ("borkSound").GetComponent<AudioSource> (); eelDialogueSound = GameObject.Find("Player").transform.Find ("eelSound").GetComponent<AudioSource> (); dadDialogueSound = GameObject.Find("Player").transform.Find ("dadSound").GetComponent<AudioSource> (); chadDialogueSound = GameObject.Find("Player").transform.Find ("chadSound").GetComponent<AudioSource> (); playerBabyModel = GameObject.Find("chibiSquid2"); playerJuveModel = GameObject.FindGameObjectWithTag ("krakenJuvenile"); playerJuveModel.SetActive (false); playerAdultModel = GameObject.FindGameObjectWithTag ("krakenAdult"); playerAdultModel.SetActive (false); sceneTemp = SceneManager.GetActiveScene (); uiQuestZero = GameObject.Find ("QuestZero"); uiQuestZero.SetActive (false); uiQuestOne = GameObject.FindGameObjectWithTag ("uiQuestOne"); uiQuestOne.SetActive (false); uiQuestTwo = GameObject.FindGameObjectWithTag ("uiQuestTwo"); uiQuestTwo.SetActive (false); uiQuestThree = GameObject.FindGameObjectWithTag ("uiQuestThree"); uiQuestThree.SetActive (false); uiQuestFour = GameObject.Find ("QuestFour"); uiQuestFour.SetActive (false); uiQuestFive = GameObject.Find ("QuestFive"); uiQuestFive.SetActive (false); uiQuestSix = GameObject.Find ("QuestSix"); uiQuestSix.SetActive (false); uiQuestSeven = GameObject.Find ("QuestSeven"); uiQuestSeven.SetActive (false); uiQuestEight = GameObject.Find ("QuestEight"); uiQuestEight.SetActive (false); uiQuestNine = GameObject.Find ("QuestNine"); uiQuestNine.SetActive (false); uiQuestTen = GameObject.Find ("QuestTen"); uiQuestTen.SetActive (false); uiQuestEleven = GameObject.Find ("QuestEleven"); uiQuestEleven.SetActive (false); uiQuestTwelve = GameObject.Find ("QuestTwelve"); uiQuestTwelve.SetActive (false); uiQuestThirteen = GameObject.Find ("QuestThirteen"); uiQuestThirteen.SetActive (false); uiQuestFourteen = GameObject.Find ("QuestFourteen"); uiQuestFourteen.SetActive (false); uiQuestFifteen = GameObject.Find ("QuestFifteen"); uiQuestFifteen.SetActive (false); uiQuestSixteen = GameObject.Find ("QuestSixteen"); uiQuestSixteen.SetActive (false); uiQuestSixteenOne = GameObject.Find ("QuestSixteenOne"); uiQuestSixteenOne.SetActive (false); uiQuestSixteenTwo = GameObject.Find ("QuestSixteenTwo"); uiQuestSixteenTwo.SetActive (false); uiQuestSixteenComp = GameObject.Find ("QuestSixteenComp"); uiQuestSixteenComp.SetActive (false); uiQuestSeventeen = GameObject.Find ("QuestSeventeen"); uiQuestSeventeen.SetActive (false); uiQuestEighteen = GameObject.Find ("QuestEighteen"); uiQuestEighteen.SetActive (false); uiQuestNineteen = GameObject.Find ("QuestNineteen"); uiQuestNineteen.SetActive (false); uiQuestTwenty = GameObject.Find ("QuestTwenty"); uiQuestTwenty.SetActive (false); uiQuestTwentyOne = GameObject.Find ("QuestTwentyOne"); uiQuestTwentyOne.SetActive (false); uiQuestTwentyTwo = GameObject.Find ("QuestTwentyTwo"); uiQuestTwentyTwo.SetActive (false); uiQuestTwentyThree = GameObject.Find ("QuestTwentyThree"); uiQuestTwentyThree.SetActive (false); uiQuestTwentyFour = GameObject.Find ("QuestTwentyFour"); uiQuestTwentyFour.SetActive (false); uiQuestTwentyFive = GameObject.Find ("QuestTwentyFive"); uiQuestTwentyFive.SetActive (false); uiQuestTwentySix = GameObject.Find ("QuestTwentySix"); uiQuestTwentySix.SetActive (false); uiQuestTwentySeven = GameObject.Find ("QuestTwentySeven"); uiQuestTwentySeven.SetActive (false); uiQuestTwentyThreeInc1 = GameObject.Find ("QuestTwentyThreeInc1"); uiQuestTwentyThreeInc1.SetActive (false); uiQuestTwentyThreeInc2 = GameObject.Find ("QuestTwentyThreeInc2"); uiQuestTwentyThreeInc2.SetActive (false); uiQuestTwentyThreeInc3 = GameObject.Find ("QuestTwentyThreeInc3"); uiQuestTwentyThreeInc3.SetActive (false); uiQuestTwentyThreeInc4 = GameObject.Find ("QuestTwentyThreeInc4"); uiQuestTwentyThreeInc4.SetActive (false); uiQuestTwentyThreeInc5 = GameObject.Find ("QuestTwentyThreeInc5"); uiQuestTwentyThreeInc5.SetActive (false); uiMissionText = GameObject.FindGameObjectWithTag ("uiMissionText"); uiMissionText.SetActive (false); uiQuestOutline = GameObject.Find ("Outline"); uiQuestOutline.SetActive (false); uiBoxOutline = GameObject.Find ("textBoxOutline"); uiBoxOutline.SetActive (false); uiMissionBox = GameObject.FindGameObjectWithTag ("uiQuestBox"); uiMissionBox.SetActive (false); borkObjectAttached = GameObject.FindGameObjectWithTag ("borkAttached"); borkObjectAttached.SetActive (false); borkObjectUnattached = GameObject.FindGameObjectWithTag ("BorkNPCLocation"); /* GameObject.FindGameObjectWithTag ("borkunattached").GetComponent<NPCHighlighting>().changeMatToNml(); GameObject.FindGameObjectWithTag ("borkunattached").GetComponent<NPCHighlighting>().changeMatToHL(); GameObject.FindGameObjectWithTag ("borkunattached").GetComponent<NPCHighlighting>().changeMatToNml(); */ GameObject.FindGameObjectWithTag ("borkunattached"); incompleteMissionText = GameObject.FindGameObjectWithTag ("incomplete"); incompleteMissionText.SetActive (false); completeMissionText = GameObject.FindGameObjectWithTag ("complete"); completeMissionText.SetActive (false); returnToBorkText = GameObject.FindGameObjectWithTag ("QuestReturn"); returnToBorkText.SetActive (false); returnToDadText = GameObject.Find ("QuestReturnSeal"); returnToDadText.SetActive (false); player = GameObject.FindGameObjectWithTag("Player"); chadLocOriginWithRigid = GameObject.Find ("chadLocationObjectWithRigid"); chadLocOriginWithRigid.SetActive (false); chadLocOriginWithNo = GameObject.Find ("chadLocationObjectWithNo"); chadLocOriginWithNo.SetActive (true); sealLocOrigin = GameObject.Find ("sealDadLocationObject"); eelLocOrigin = GameObject.Find ("eelLocationObject"); egg = GameObject.FindGameObjectWithTag ("krakenEgg"); plateWithScript = GameObject.Find ("pressurewithscript"); plateWithScript.SetActive (false); plateNoScript = GameObject.Find ("pressurenoscript"); milkCartonRock = GameObject.Find ("SealDadsMilkRock"); turtlePillowRock = GameObject.Find ("TurtlePillowRock"); beautyKitImg = GameObject.Find ("BeautyKitImage"); beautyKitImg.SetActive (false); tutorialText.SetActive (false); tutorialBox.SetActive (false); }
public static void AddItemToSynergy(this PickupObject obj, string nameKey) { AddItemToSynergy(nameKey, obj.PickupObjectId); }
void Start() { gameMode = PlayerPrefs.GetInt("gameMode"); foreach (var collider in RespawnColliders) { collider.gameObject.AddComponent <Respawn>(); collider.GetComponent <Respawn>().gameManager = this; } if (autoFindKarts) { karts = FindObjectsOfType <ArcadeKart>(); if (karts.Length > 0) { if (!playerKart) { playerKart = karts[0]; } } DebugUtility.HandleErrorIfNullFindObject <ArcadeKart, GameFlowManager>(playerKart, this); } m_pickupObject = FindObjectOfType <PickupObject>(); m_ObjectiveManager = FindObjectOfType <ObjectiveManager>(); DebugUtility.HandleErrorIfNullFindObject <ObjectiveManager, GameFlowManager>(m_ObjectiveManager, this); m_TimeManager = FindObjectOfType <TimeManager>(); DebugUtility.HandleErrorIfNullFindObject <TimeManager, GameFlowManager>(m_TimeManager, this); AudioUtility.SetMasterVolume(1); winDisplayMessage.gameObject.SetActive(false); loseDisplayMessage.gameObject.SetActive(false); m_TimeManager.StopRace(); foreach (ArcadeKart k in karts) { k.SetCanMove(false); } if (!isTest) { //GameMode Selected if (gameMode == 0) { //GameMode is TimeLimit foreach (GameObject racerDesactive in racer) { racerDesactive.SetActive(false); } } else { //GameMode is Racer m_TimeManager.enabled = false; foreach (GameObject timeLimitDesactive in timeLimit) { timeLimitDesactive.SetActive(false); } } } Tooning.SetActive(true); }
public static void SetupUnlockOnStat(this PickupObject self, TrackedStats stat, DungeonPrerequisite.PrerequisiteOperation operation, int comparisonValue) { EncounterTrackable encounterTrackable = self.encounterTrackable; bool flag = encounterTrackable.prerequisites == null; if (flag) { encounterTrackable.prerequisites = new DungeonPrerequisite[1]; encounterTrackable.prerequisites[0] = new DungeonPrerequisite { prerequisiteType = DungeonPrerequisite.PrerequisiteType.COMPARISON, prerequisiteOperation = operation, statToCheck = stat, comparisonValue = (float)comparisonValue }; } else { encounterTrackable.prerequisites = encounterTrackable.prerequisites.Concat(new DungeonPrerequisite[] { new DungeonPrerequisite { prerequisiteType = DungeonPrerequisite.PrerequisiteType.COMPARISON, prerequisiteOperation = operation, statToCheck = stat, comparisonValue = (float)comparisonValue } }).ToArray <DungeonPrerequisite>(); } EncounterDatabaseEntry entry = EncounterDatabase.GetEntry(encounterTrackable.EncounterGuid); bool flag2 = !string.IsNullOrEmpty(entry.ProxyEncounterGuid); if (flag2) { entry.ProxyEncounterGuid = ""; } bool flag3 = entry.prerequisites == null; if (flag3) { entry.prerequisites = new DungeonPrerequisite[1]; entry.prerequisites[0] = new DungeonPrerequisite { prerequisiteType = DungeonPrerequisite.PrerequisiteType.COMPARISON, prerequisiteOperation = operation, statToCheck = stat, comparisonValue = (float)comparisonValue }; } else { entry.prerequisites = entry.prerequisites.Concat(new DungeonPrerequisite[] { new DungeonPrerequisite { prerequisiteType = DungeonPrerequisite.PrerequisiteType.COMPARISON, prerequisiteOperation = operation, statToCheck = stat, comparisonValue = (float)comparisonValue } }).ToArray <DungeonPrerequisite>(); } }
public static void HandleEncounterableHook(Action <PickupObject, PlayerController> orig, PickupObject po, PlayerController player) { orig(po, player); if (po != null && po.GetComponent <SpecialPickupObject>() != null && po.GetComponent <SpecialPickupObject>().CustomSaveFlagToSetOnAcquisition != CustomDungeonFlags.NONE) { AdvancedGameStatsManager.Instance.SetFlag(po.GetComponent <SpecialPickupObject>().CustomSaveFlagToSetOnAcquisition, true); } }
void PickUp() { weapon = nearbyPickup.GetComponent<PickupObject> (); moveCont.anim.SetBool ("Holding", true); weapon.PickUp (this.transform); armLSR.sprite = armHoldRes; armRSR.sprite = armHoldRes; Vector3 theScale = armR.transform.localScale; theScale.x *= -1; armR.transform.localScale = theScale; arms.transform.position = armHoldPos.transform.position; if(weapon.objName.Equals("rocketlauncher")){ weaponCurAmmo = weapon.GetComponent<RocketLauncher> ().ammoAmount; weaponMaxAmmo = weaponCurAmmo; } else if(weapon.objName.Equals("ak47")){ weaponCurAmmo = weapon.GetComponent<AK47> ().ammoAmount; weaponMaxAmmo = weaponCurAmmo; } else { weaponCurAmmo = 0; weaponMaxAmmo = weaponCurAmmo; } }
protected override void DoEffect(PlayerController user) { Kill = false; Shop = false; Table = false; Blank = false; Clear = false; KillNum = 0; ShopNum = 0; TableNum = 0; BlankNum = 0; ClearNum = 0; string header = "Quest assigned"; string text = ""; int QuestNum = Random.Range(1, 6); if (QuestNum == 1) { KillReq = Random.Range(4, 11); text = "Kill " + KillReq + " enemies"; Kill = true; } if (QuestNum == 2) { ShopReq = Random.Range(1, 3); text = "Buy " + ShopReq + " items"; Shop = true; } if (QuestNum == 3) { TableReq = Random.Range(2, 6); text = "Flip " + TableReq + " tables"; Table = true; } if (QuestNum == 4) { BlankReq = 1; text = "Use " + BlankReq + " blank"; Blank = true; } if (QuestNum == 5) { ClearReq = Random.Range(3, 8); text = "Clear " + ClearReq + " rooms"; Clear = true; } this.Notify(header, text); QuestComplete = false; if (RewardDue == true) { int loop = 0; int RewardGive = Random.Range(1, 7); if (RewardGive == 1 && RewardDue == true) { int currencyGive = Random.Range(10, 26); while (loop < currencyGive) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(68).gameObject, user); loop += 1; } loop = 0; } if (RewardGive == 2 && RewardDue == true) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(120).gameObject, user); } if (RewardGive == 3 && RewardDue == true) { int glassGive = Random.Range(1, 4); while (loop < glassGive) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, user); loop += 1; } loop = 0; } if (RewardGive == 4 && RewardDue == true) { PickupObject byId = PickupObjectDatabase.GetById(78); LootEngine.SpawnItem(byId.gameObject, user.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); } if (RewardGive == 5 && RewardDue == true) { PickupObject ID = PickupObjectDatabase.GetById(600); LootEngine.SpawnItem(ID.gameObject, user.specRigidbody.UnitCenter, Vector2.up, 1f, false, true, false); } if (RewardGive == 6 && RewardDue == true) { LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(127).gameObject, user); } } RewardDue = false; }
// Token: 0x06000189 RID: 393 RVA: 0x00014144 File Offset: 0x00012344 public static void SetupUnlockOnFlag(this PickupObject self, CustomDungeonFlags flag, bool requiredFlagValue) { self.SetupUnlockOnFlag(CustomGungeonFlagsManager.GetGungeonFlagForCustomDungeonFlag(flag), requiredFlagValue); }
private void Update() { switch (state) { case EnemyStates.FindTarget: { _anim.SetBool("IsRunning", false); _anim.SetBool("IsReturning", false); if (target == null || target.takenByEnemy) { target = ItemsManager.instance.GetRandomTarget(); } if (target != null) { state = EnemyStates.ChaseTarget; } break; } case EnemyStates.ChaseTarget: { if (target == null || target.takenByEnemy) { state = EnemyStates.FindTarget; break; } _anim.SetBool("IsRunning", true); _anim.SetBool("IsReturning", false); _agent.SetDestination(target.transform.position); // check if reached target float distanceFromItem = Vector3.Magnitude(target.transform.position - transform.position); if (distanceFromItem <= _agent.stoppingDistance + 0.8f) { // enemy reached target, take it state = EnemyStates.TakeTarget; break; } break; } case EnemyStates.TakeTarget: { if (target == null) { break; } // disable interaction of target target.DisableInteraction(); // set target's takenByEnemy target.takenByEnemy = true; // position and parent target target.transform.position = grabPosition.position; target.transform.rotation = grabPosition.rotation; target.transform.parent = grabPosition; state = EnemyStates.GoCheckout; break; } case EnemyStates.GoCheckout: { // animation _anim.SetBool("IsRunning", false); _anim.SetBool("IsReturning", true); // return to checkout area Vector3 checkoutPos = checkoutPoint.position; _agent.SetDestination(checkoutPos); // check if reached checkout area float distanceFromCheckout = Vector3.Magnitude(checkoutPos - transform.position); if (distanceFromCheckout <= _agent.stoppingDistance + 1f) { // reached checkout area, drop item DropTarget(); state = EnemyStates.FindTarget; break; } break; } case EnemyStates.Idle: { _anim.SetBool("IsRunning", false); _anim.SetBool("IsReturning", false); _agent.isStopped = true; break; } } }
private void OnUsedBlank(PlayerController arg1, int arg2) { PickupObject byId = PickupObjectDatabase.GetById(565); Owner.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); }
// Token: 0x06000172 RID: 370 RVA: 0x00013060 File Offset: 0x00011260 public static void Init() { AssetBundle assetBundle = ResourceManager.LoadAssetBundle("shared_auto_001"); string text = "assets/data/goops/water goop.asset"; GoopDefinition goopDefinition; try { GameObject gameObject = assetBundle.LoadAsset(text) as GameObject; goopDefinition = gameObject.GetComponent <GoopDefinition>(); } catch { goopDefinition = (assetBundle.LoadAsset(text) as GoopDefinition); } goopDefinition.name = text.Replace("assets/data/goops/", "").Replace(".asset", ""); tools.DefaultWaterGoop = goopDefinition; text = "assets/data/goops/poison goop.asset"; GoopDefinition goopDefinition2; try { GameObject gameObject2 = assetBundle.LoadAsset(text) as GameObject; goopDefinition2 = gameObject2.GetComponent <GoopDefinition>(); } catch { goopDefinition2 = (assetBundle.LoadAsset(text) as GoopDefinition); } goopDefinition2.name = text.Replace("assets/data/goops/", "").Replace(".asset", ""); tools.DefaultPoisonGoop = goopDefinition2; text = "assets/data/goops/napalmgoopquickignite.asset"; GoopDefinition goopDefinition3; try { GameObject gameObject3 = assetBundle.LoadAsset(text) as GameObject; goopDefinition3 = gameObject3.GetComponent <GoopDefinition>(); } catch { goopDefinition3 = (assetBundle.LoadAsset(text) as GoopDefinition); } goopDefinition3.name = text.Replace("assets/data/goops/", "").Replace(".asset", ""); tools.DefaultFireGoop = goopDefinition3; PickupObject byId = PickupObjectDatabase.GetById(310); bool flag = byId == null; GoopDefinition defaultCharmGoop; if (flag) { defaultCharmGoop = null; } else { WingsItem component = byId.GetComponent <WingsItem>(); defaultCharmGoop = ((component != null) ? component.RollGoop : null); } tools.DefaultCharmGoop = defaultCharmGoop; tools.DefaultCheeseGoop = (PickupObjectDatabase.GetById(626) as Gun).DefaultModule.projectiles[0].cheeseEffect.CheeseGoop; tools.DefaultBlobulonGoop = EnemyDatabase.GetOrLoadByGuid("0239c0680f9f467dbe5c4aab7dd1eca6").GetComponent <GoopDoer>().goopDefinition; tools.DefaultPoopulonGoop = EnemyDatabase.GetOrLoadByGuid("116d09c26e624bca8cca09fc69c714b3").GetComponent <GoopDoer>().goopDefinition; }
public static string GetUniqueItemID(this PickupObject pickup) { return(((Patches.PickupObject)(object) pickup).UniqueItemID); }
internal void AddDefaultCommands() { _LoggerSubscriber = (logger, loglevel, indent, str) => { PrintLine(logger.String(loglevel, str, indent: indent), color: _LoggerColors[loglevel]); }; AddCommand("!!", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Execute(histindex.Value - 1)); }); AddCommand("!'", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Entries[histindex.Value - 1]); }); AddCommand("echo", (args) => { return(string.Join(" ", args.ToArray())); }).WithSubCommand("hello", (args) => { return("Hello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!"); }); AddGroup("debug") .WithSubCommand("spawn-rand-chest", (args) => { var chest = GameManager.Instance.RewardManager.SpawnTotallyRandomChest(GameManager.Instance.PrimaryPlayer.CurrentRoom.GetRandomAvailableCellDumb()); return(chest.name); }) .WithSubCommand("force-dual-wield", (args) => { if (args.Count < 1) { throw new Exception("At least 1 argument required."); } var partner_id = int.Parse(args[0]); var player = GameManager.Instance.PrimaryPlayer; var gun = player.inventory.CurrentGun; var partner_gun = PickupObjectDatabase.GetById(partner_id) as Gun; player.inventory.AddGunToInventory(partner_gun); var forcer = gun.gameObject.AddComponent <DualWieldForcer>(); forcer.Gun = gun; forcer.PartnerGunID = partner_gun.PickupObjectId; forcer.TargetPlayer = player; return("Done"); }) .WithSubCommand("unexclude-all-items", (args) => { foreach (var ent in PickupObjectDatabase.Instance.Objects) { if (ent == null) { continue; } ent.quality = PickupObject.ItemQuality.SPECIAL; } return("Done"); }) .WithSubCommand("activate-all-synergies", (args) => { foreach (var ent in GameManager.Instance.SynergyManager.synergies) { if (ent == null) { continue; } ent.ActivationStatus = SynergyEntry.SynergyActivation.ACTIVE; } return("Done"); }) .WithSubCommand("character", (args) => { if (args.Count < 1) { throw new Exception("At least 1 argument required."); } StartCoroutine(_ChangeCharacter(args[0], args.Count > 1)); return($"Changed character to {args[0]}"); }) .WithSubCommand("parser-bounds-test", (args) => { var text = "echo Hello! \"Hello world!\" This\\ is\\ great \"It\"works\"with\"\\ wacky\" stuff\" \\[\\] \"\\[\\]\" [e[echo c][echo h][echo [echo \"o\"]] \"hel\"[echo lo][echo !]]"; CurrentCommandText = text; return(null); }) .WithSubCommand("giveid", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required."); } var pickup_obj = PickupObjectDatabase.Instance.InternalGetById(int.Parse(args[0])); if (pickup_obj == null) { return("Item ID {args[0]} doesn't exist!"); } LootEngine.TryGivePrefabToPlayer(pickup_obj.gameObject, GameManager.Instance.PrimaryPlayer, true); return(pickup_obj.EncounterNameOrDisplayName); }); AddGroup("pool") .WithSubGroup( new Group("items") .WithSubCommand("idof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (numeric ID)."); } var id = int.Parse(args[0]); foreach (var pair in ModTheGungeon.Items.Pairs) { if (pair.Value.PickupObjectId == id) { return(pair.Key); } } return("Entry not found."); }) .WithSubCommand("nameof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ModTheGungeon.Items.Pairs) { if (pair.Key == id) { return(_GetPickupObjectName(pair.Value)); } } return("Entry not found."); }) .WithSubCommand("numericof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ModTheGungeon.Items.Pairs) { if (pair.Key == id) { return(pair.Value.PickupObjectId.ToString()); } } return("Entry not found."); }) .WithSubCommand("list", (args) => { var s = new StringBuilder(); var pairs = new List <KeyValuePair <string, PickupObject> >(); foreach (var pair in ModTheGungeon.Items.Pairs) { pairs.Add(pair); } foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } } pairs.Sort((x, y) => string.Compare(_GetPickupObjectName(x.Value), _GetPickupObjectName(y.Value))); foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { continue; } s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } return(s.ToString()); }) .WithSubCommand("random", (args) => { return(ModTheGungeon.Items.RandomKey); }) ); AddCommand("summon", (args) => { var player = GameManager.Instance.PrimaryPlayer; if (player == null) { throw new Exception("No player"); } var cell = player.CurrentRoom.GetRandomAvailableCellDumb(); var entity = AIActor.Spawn(ModTheGungeon.Entities[args[0]], cell, player.CurrentRoom, true, AIActor.AwakenAnimationType.Default, true); if (ModTheGungeon.Entities.GetType(args[0]) == ModTheGungeon.EntityType.Friendly) { entity.CompanionOwner = player; entity.CompanionSettings = new ActorCompanionSettings(); entity.CanTargetPlayers = false; var companion = entity.GetComponent <CompanionController>(); if (companion != null) { companion.Initialize(player); if (companion.specRigidbody) { PhysicsEngine.Instance.RegisterOverlappingGhostCollisionExceptions(companion.specRigidbody, null, false); } } } var name = args[0]; if (entity.encounterTrackable?.journalData?.PrimaryDisplayName != null) { name = StringTableManager.GetEnemiesString(entity.encounterTrackable?.journalData?.PrimaryDisplayName); } return(name); }); AddCommand("listmods", (args) => { var s = new StringBuilder(); s.AppendLine("Loaded mods:"); foreach (var mod in ModTheGungeon.ModLoader.LoadedMods) { _GetModInfo(s, mod); } return(s.ToString()); }); AddCommand("lua", (args) => { LuaMode = true; return("[entered lua mode]"); }); AddCommand("give", (args) => { LootEngine.TryGivePrefabToPlayer(ModTheGungeon.Items[args[0]].gameObject, GameManager.Instance.PrimaryPlayer, true); return(args[0]); }); AddGroup("dump") .WithSubCommand("synergy_chest", (args) => { System.Console.WriteLine(ObjectDumper.Dump(GameManager.Instance.RewardManager.Synergy_Chest, depth: 10)); return("Dumped to log"); }) .WithSubCommand("synergies", (args) => { var id = 0; foreach (var synergy in GameManager.Instance.SynergyManager.synergies) { if (synergy.NameKey != null) { var name = StringTableManager.GetSynergyString(synergy.NameKey); System.Console.WriteLine($"== SYNERGY ID {id} NAME {name} =="); } else { System.Console.WriteLine($"== SYNERGY ID {id} =="); } System.Console.WriteLine($" ACTIVATION STATUS: {synergy.ActivationStatus}"); System.Console.WriteLine($" # OF OBJECTS REQUIRED: {synergy.NumberObjectsRequired}"); System.Console.WriteLine($" ACTIVE WHEN GUN UNEQUIPPED?: {synergy.ActiveWhenGunUnequipped}"); System.Console.WriteLine($" REQUIRES AT LEAST ONE GUN AND ONE ITEM?: {synergy.RequiresAtLeastOneGunAndOneItem}"); System.Console.WriteLine($" MANDATORY GUNS:"); foreach (var itemid in synergy.MandatoryGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL GUNS:"); foreach (var itemid in synergy.OptionalGunIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" MANDATORY ITEMS:"); foreach (var itemid in synergy.MandatoryItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" OPTIONAL ITEMS:"); foreach (var itemid in synergy.OptionalItemIDs) { System.Console.WriteLine($" - {_GetPickupObjectName(PickupObjectDatabase.GetById(itemid))}"); } System.Console.WriteLine($" BONUS SYNERGIES:"); foreach (var bonus in synergy.bonusSynergies) { System.Console.WriteLine($" - {bonus}"); } System.Console.WriteLine($" STAT MODIFIERS:"); foreach (var statmod in synergy.statModifiers) { System.Console.WriteLine($" - STAT: {statmod.statToBoost}"); System.Console.WriteLine($" AMOUNT: {statmod.amount}"); System.Console.WriteLine($" MODIFY TYPE: {statmod.modifyType}"); System.Console.WriteLine($" PERSISTS ON COOP DEATH?: {statmod.PersistsOnCoopDeath}"); System.Console.WriteLine($" IGNORED FOR SAVE DATA?: {statmod.ignoredForSaveData}"); } id++; } return("Dumped to log"); }) .WithSubCommand("items", (args) => { var b = new StringBuilder(); var db = PickupObjectDatabase.Instance.Objects; for (int i = 0; i < db.Count; i++) { PickupObject obj = null; string nameprefix = ""; string name = null; try { obj = db[i]; } catch { name = "[ERROR: failed getting object by index]"; } if (obj != null) { try { var displayname = obj.encounterTrackable.journalData.PrimaryDisplayName; name = StringTableManager.ItemTable[displayname].GetWeightedString(); } catch { name = "[ERROR: failed getting ammonomicon name]"; } if (name == null) { try { name = obj.EncounterNameOrDisplayName; } catch { name = "[ERROR: failed getting encounter or display name]"; } } } if (name == null && obj != null) { name = "[NULL NAME (but object is not null)]"; } name = $"{nameprefix} {name}"; if (name != null) { b.AppendLine($"{i}: {name}"); _Logger.Info($"{i}: {name}"); } } return(b.ToString()); }); AddGroup("log") .WithSubCommand("sub", (args) => { if (_Subscribed) { return("Already subscribed."); } Logger.Subscribe(_LoggerSubscriber); _Subscribed = true; return("Done."); }) .WithSubCommand("unsub", (args) => { if (!_Subscribed) { return("Not subscribed yet."); } Logger.Unsubscribe(_LoggerSubscriber); _Subscribed = false; return("Done."); }) .WithSubCommand("level", (args) => { if (args.Count == 0) { return(_LogLevel.ToString().ToLowerInvariant()); } else { switch (args[0]) { case "debug": _LogLevel = Logger.LogLevel.Debug; break; case "info": _LogLevel = Logger.LogLevel.Info; break; case "warn": _LogLevel = Logger.LogLevel.Warn; break; case "error": _LogLevel = Logger.LogLevel.Error; break; default: throw new Exception($"Unknown log level '{args[0]}"); } return("Done."); } }); // test commands to dump collection AddGroup("texdump") .WithSubCommand("collection", (args) => { if (args.Count == 0) { return("No name specified"); } else { string collectionName = args[0]; Animation.Collection.Dump(collectionName); return("Successfull"); } }); }
private void GetItem() { PlayerController user = this.LastOwner; float value = UnityEngine.Random.Range(0.0f, 1f); bool flag = value < 0.7; if (flag) { PickupObject.ItemQuality itemQuality = PickupObject.ItemQuality.D; PickupObject itemOfTypeAndQuality = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality) { LootEngine.SpawnItem(itemOfTypeAndQuality.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); } } else { bool flag2 = value < 0.85; if (flag2) { PickupObject.ItemQuality itemQuality5 = PickupObject.ItemQuality.C; PickupObject itemOfTypeAndQuality5 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality5, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality5) { LootEngine.SpawnItem(itemOfTypeAndQuality5.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); } } else { bool flag3 = value < 0.95; if (flag3) { PickupObject.ItemQuality itemQuality4 = PickupObject.ItemQuality.B; PickupObject itemOfTypeAndQuality4 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality4, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality4) { LootEngine.SpawnItem(itemOfTypeAndQuality4.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); } } else { bool flag4 = value < 0.98; if (flag4) { PickupObject.ItemQuality itemQuality3 = PickupObject.ItemQuality.A; PickupObject itemOfTypeAndQuality3 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality3, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality3) { LootEngine.SpawnItem(itemOfTypeAndQuality3.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); } } else { PickupObject.ItemQuality itemQuality2 = PickupObject.ItemQuality.S; PickupObject itemOfTypeAndQuality2 = LootEngine.GetItemOfTypeAndQuality <PickupObject>(itemQuality2, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable, false); if (itemOfTypeAndQuality2) { LootEngine.SpawnItem(itemOfTypeAndQuality2.gameObject, user.CenterPosition, Vector2.up, 1f, true, true, false); } } } } } }
private void RandomEffect() { PlayerController player = this.Owner; AkSoundEngine.PostEvent("Play_WPN_burninghand_shot_01", base.gameObject); if (ETGMod.Databases.Items["Glass Ammolet"] != null && ETGMod.Databases.Items["Glass Chamber"] != null && ETGMod.Databases.Items["Glass Rounds"] != null) { float value = UnityEngine.Random.Range(0.0f, 1.0f); bool SingleStone = value <= 0.3; if (SingleStone && !player.HasPickupID(152)) { //SINGLE STONE AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool DoubleStone = value <= 0.7; if (DoubleStone && !player.HasPickupID(152)) { //DOUBLE STONE AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", base.gameObject); PickupObject byId = PickupObjectDatabase.GetById(565); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool TripleStone = value <= 0.9; if (TripleStone) { //TRIPLE STONE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); PickupObject byId = PickupObjectDatabase.GetById(565); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool Sunglasses = value <= 0.9125; if (Sunglasses) { //SUNGLASSES AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(290).gameObject, player); } else { bool Bottle = value <= 0.925; if (Bottle && !player.HasPickupID(558)) { //BOTTLE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); float baseStatValue = player.stats.GetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity); float num = 1f + baseStatValue; player.stats.SetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity, num, player); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(558).gameObject, player); } else { bool Flask = value <= 0.9375; if (Flask && !player.HasPickupID(267)) { //KNIGHT FLASK AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); float baseStatValue = player.stats.GetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity); float num = 1f + baseStatValue; player.stats.SetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity, num, player); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(267).gameObject, player); } else { bool Cannon = value <= 0.95; if (Cannon && !player.HasPickupID(540)) { //GLASS CANNON AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(540).gameObject, player); } else { bool HeartBottle = value <= 0.9625; if (HeartBottle) { //HEART BOTTLE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(424).gameObject, player); } else { bool GlassRounds = value <= 0.975; if (GlassRounds) { //GLASS ROUNDS AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(ETGMod.Databases.Items["Glass Rounds"].gameObject, player); } else { bool GlassAmmolet = value <= 0.9875; if (GlassAmmolet) { //GLASS AMMOLET AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(ETGMod.Databases.Items["Glass Ammolet"].gameObject, player); } else { bool GlassChamber = value <= 1; if (GlassChamber) { //GLASS CHAMBER AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(ETGMod.Databases.Items["Glass Chamber"].gameObject, player); } } } } } } } } } } } } else if (ETGMod.Databases.Items["Glass Ammolet"] == null || ETGMod.Databases.Items["Glass Chamber"] == null || ETGMod.Databases.Items["Glass Rounds"] == null) { float value = UnityEngine.Random.Range(0.0f, 1.0f); bool SingleStone = value <= 0.3; if (SingleStone && !player.HasPickupID(152)) { //SINGLE STONE AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool DoubleStone = value <= 0.7; if (DoubleStone && !player.HasPickupID(152)) { //DOUBLE STONE AkSoundEngine.PostEvent("Play_OBJ_crystal_shatter_01", base.gameObject); PickupObject byId = PickupObjectDatabase.GetById(565); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool TripleStone = value <= 0.9; if (TripleStone) { //TRIPLE STONE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); PickupObject byId = PickupObjectDatabase.GetById(565); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); player.AcquirePassiveItemPrefabDirectly(byId as PassiveItem); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(565).gameObject, player); } else { bool Sunglasses = value <= 0.92; if (Sunglasses) { //SUNGLASSES AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(290).gameObject, player); } else { bool Bottle = value <= 0.94; if (Bottle && !player.HasPickupID(558)) { //BOTTLE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); float baseStatValue = player.stats.GetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity); float num = 1f + baseStatValue; player.stats.SetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity, num, player); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(558).gameObject, player); } else { bool Flask = value <= 0.96; if (Flask && !player.HasPickupID(267)) { //KNIGHT FLASK AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); float baseStatValue = player.stats.GetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity); float num = 1f + baseStatValue; player.stats.SetBaseStatValue(PlayerStats.StatType.AdditionalItemCapacity, num, player); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(267).gameObject, player); } else { bool Cannon = value <= 0.98; if (Cannon && !player.HasPickupID(540)) { //GLASS CANNON AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(540).gameObject, player); } else { bool HeartBottle = value <= 1; if (HeartBottle) { //HEART BOTTLE AkSoundEngine.PostEvent("Play_OBJ_ironcoin_wish_01", base.gameObject); LootEngine.GivePrefabToPlayer(PickupObjectDatabase.GetById(424).gameObject, player); } } } } } } } } } }
public static void AllItemsAre() { if (itemPool.Count == 0) { return; } foreach (PickupObject pickupObject in UnityEngine.Object.FindObjectsOfType <PickupObject>()) { //ETGModConsole.Log("ID: " + pickupObject.PickupObjectId + " | InstanceID: " + pickupObject.GetInstanceID() + " | Name: " + pickupObject.name); bool continueThen = false; foreach (PickupObject item in itemPool) { if (item.PickupObjectId == pickupObject.PickupObjectId) { continueThen = true; break; } } if (continueThen) { continue; } if (pickupObject.GetComponentInParent <AIActor>() != null) { if (pickupObject.GetComponentInParent <AIActor>().IsMimicEnemy) { continue; } } if (pickupObject.GetComponentInParent <BeholsterTentacleController>() != null) { continue; } if (GameManager.Instance.PrimaryPlayer != null) { if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Pilot) { if (pickupObject.PickupObjectId == Game.Items.Get("trusty_lockpicks").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Convict) { if (pickupObject.PickupObjectId == Game.Items.Get("molotov").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Soldier) { if (pickupObject.PickupObjectId == Game.Items.Get("supply_drop").PickupObjectId) { continue; } } else if (GameManager.Instance.PrimaryPlayer.characterIdentity == PlayableCharacters.Robot) { if (pickupObject.PickupObjectId == Game.Items.Get("coolant_leak").PickupObjectId) { continue; } } } if (!settingBools[2] && pickupObject.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && pickupObject.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && pickupObject.PickupObjectId == junkID) { continue; } else if (pickupObject.PickupObjectId == keyID) { continue; } else if (pickupObject.PickupObjectId == heartID) { continue; } else if (pickupObject.PickupObjectId == GlobalItemIds.Blank) { continue; } else if (pickupObject.PickupObjectId == halfHeartID) { continue; } if (pickupObject as Gun != null && settingBools[3]) { Gun gun = pickupObject.GetComponent <Gun>(); if (gun.HasBeenPickedUp) { safeItems.Add(gun.GetInstanceID()); continue; } else { if (!safeItems.Contains(gun.GetInstanceID())) { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(gun.gameObject); } } } else if (pickupObject as PassiveItem != null && settingBools[4]) { PassiveItem passiveItem = pickupObject.GetComponent <PassiveItem>(); if (passiveItem.PickedUp) { safeItems.Add(passiveItem.GetInstanceID()); continue; } else { if (!safeItems.Contains(passiveItem.GetInstanceID())) { { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(passiveItem.gameObject); } } } } else if (pickupObject as PlayerItem != null && settingBools[5]) { PlayerItem playerItem = pickupObject.GetComponent <PlayerItem>(); if (playerItem.LastOwner != null) { safeItems.Add(playerItem.GetInstanceID()); continue; } else { if (!safeItems.Contains(playerItem.GetInstanceID())) { LootEngine.SpawnItem(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)).gameObject, pickupObject.transform.position, Vector2.up, 1.0f); UnityEngine.Object.Destroy(playerItem.gameObject); } } } else { continue; } } foreach (ShopItemController shopItem in UnityEngine.Object.FindObjectsOfType <ShopItemController>()) { bool continueSoon = false; foreach (PickupObject itemToTest in itemPool) { if (itemToTest.PickupObjectId == shopItem.item.PickupObjectId) { continueSoon = true; } } if (!settingBools[3] && shopItem.item is Gun) { continue; } else if (!settingBools[4] && shopItem.item is PassiveItem) { continue; } else if (!settingBools[5] && shopItem.item is PlayerItem) { continue; } if (continueSoon) { continue; } else { if (StaticReferenceManager.AllShops.Count > 0) { if (!settingBools[6] && (shopItem.item.PickupObjectId == halfHeartID || shopItem.item.PickupObjectId == heartID)) { continue; } else if (!settingBools[7] && shopItem.item.PickupObjectId == shieldID) { continue; } else if (!settingBools[8] && shopItem.item.PickupObjectId == blankID) { continue; } else if (!settingBools[9] && (shopItem.item.PickupObjectId == ammoID || shopItem.item.PickupObjectId == spreadAmmoID)) { continue; } else if (!settingBools[10] && shopItem.item.PickupObjectId == keyID) { continue; } else if (!settingBools[2] && shopItem.item.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && shopItem.item.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && shopItem.item.PickupObjectId == junkID) { continue; } else if (shopItem.IsResourcefulRatKey) { continue; } else { float distanceToClosest = 555555f; BaseShopController shopToUse = StaticReferenceManager.AllShops.First(); foreach (BaseShopController shop in StaticReferenceManager.AllShops) { foreach (Transform tran in shop.spawnPositions) { if (shopItem.GetDistanceToPoint(tran.position) < distanceToClosest) { distanceToClosest = shopItem.GetDistanceToPoint(tran.position); shopToUse = shop; } } foreach (Transform tran in shop.spawnPositionsGroup2) { if (shopItem.GetDistanceToPoint(tran.position) < distanceToClosest) { distanceToClosest = shopItem.GetDistanceToPoint(tran.position); shopToUse = shop; } } } int priceBefore = shopItem.CurrentPrice; shopItem.Initialize(itemPool.ElementAt(UnityEngine.Random.Range(0, itemPool.Count)), shopToUse); if (!settingBools[11]) { shopItem.OverridePrice = priceBefore; } else if (shopItem.OverridePrice == 9999) { ETGModConsole.Log("New Payday item in shop... adjusting price to avoid 9999 cost item"); shopItem.OverridePrice = 69; //heheheheheheh } } } } } foreach (RewardPedestal pedestal in UnityEngine.Object.FindObjectsOfType <RewardPedestal>()) { if (pedestal.pickedUp || pedestal.contents == null) { continue; } bool conAfter = false; foreach (PickupObject idem in itemPool) { if (pedestal.contents.PickupObjectId == idem.PickupObjectId) { conAfter = true; } } if (conAfter) { continue; } if (!settingBools[3] && pedestal.contents is Gun) { continue; } else if (!settingBools[4] && pedestal.contents is PassiveItem) { continue; } else if (!settingBools[5] && pedestal.contents is PlayerItem) { continue; } else if (!settingBools[2] && pedestal.contents.PickupObjectId == glassGuonID) { continue; } else if (!settingBools[12] && pedestal.contents.PickupObjectId == mapItemID) { continue; } else if (!settingBools[1] && pedestal.contents.PickupObjectId == junkID) { continue; } else if (!settingBools[13] && pedestal.contents.PickupObjectId == crestID) { continue; } else if (!settingBools[0] && masterRoundIDs.Contains(pedestal.contents.PickupObjectId)) { continue; } PickupObject idemInstead = itemPool[UnityEngine.Random.Range(0, itemPool.Count)]; pedestal.contents = null; pedestal.IsBossRewardPedestal = false; pedestal.UsesSpecificItem = true; pedestal.SpecificItemId = idemInstead.PickupObjectId; pedestal.ForceConfiguration(); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().sprite.Collection = idemInstead.sprite.Collection; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().sprite.spriteId = idemInstead.sprite.spriteId; SpriteOutlineManager.AddOutlineToSprite(pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>(), Color.black, 0.1f, 0.05f, SpriteOutlineManager.OutlineType.NORMAL); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().HeightOffGround = 0.25f; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().depthUsesTrimmedBounds = true; pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().PlaceAtPositionByAnchor(pedestal.spawnTransform.position, tk2dSprite.Anchor.LowerCenter); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().transform.position = pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().transform.position.Quantize(1f / 16f); pedestal.spawnTransform.GetComponentInChildren <tk2dSprite>().UpdateZDepth(); } }
// Use this for initialization void Awake () { anim = GetComponent<Animation>(); fire = Resources.Load("fire") as GameObject; player = GameObject.FindGameObjectWithTag("Player"); pickup_obj = player.GetComponent<PickupObject>(); age = 0.0f; life = max_life; treeMask = LayerMask.GetMask("Tree"); spawn_delay += rand.Value() * 2 * spawn_delay_variance - spawn_delay_variance; Collider[] hitColiders = Physics.OverlapSphere(Vector3.zero, radius); numSpawned = 0; lastSpawned = Time.time; grow_speed += Random.value * 2 * grow_speed_variance - grow_speed_variance; RaycastHit hit; Ray rayDown = new Ray(new Vector3(transform.position.x,10000000,transform.position.z), Vector3.down); int terrain = LayerMask.GetMask("Terrain"); if (Physics.Raycast(rayDown, out hit, Mathf.Infinity, terrain)) { if (hit.point.y < Globals.water_level) Destroy(gameObject); else transform.position = new Vector3(transform.position.x, hit.point.y - 1, transform.position.z); } else { Destroy(gameObject); } }
public static PickupObject GetTotallyRandomItem(ItemQuality quality = ItemQuality.B, bool anyQuality = true) { PickupObject pickup = LootEngine.GetItemOfTypeAndQuality <PickupObject>(quality, (UnityEngine.Random.value >= 0.5f) ? GameManager.Instance.RewardManager.ItemsLootTable : GameManager.Instance.RewardManager.GunsLootTable, anyQuality); return(pickup); }
private IEnumerator ToilEnemyDupe(AIActor AIActor) { yield return(null); string guid = AIActor.EnemyGuid; var enemyPrefab = EnemyDatabase.GetOrLoadByGuid(guid); AIActor aiactor = AIActor.Spawn(enemyPrefab, AIActor.gameActor.CenterPosition.ToIntVector2(VectorConversions.Floor), AIActor.GetAbsoluteParentRoom(), true, AIActor.AwakenAnimationType.Default, true); HasBeenDoubledByWitchsBrew challengitude = aiactor.gameObject.AddComponent <HasBeenDoubledByWitchsBrew>(); challengitude.linkedOther = AIActor; HasBeenDoubledByWitchsBrew challengitude2 = AIActor.gameObject.AddComponent <HasBeenDoubledByWitchsBrew>(); challengitude2.linkedOther = aiactor; aiactor.procedurallyOutlined = true; AIActor.procedurallyOutlined = true; aiactor.IsWorthShootingAt = AIActor.IsWorthShootingAt; aiactor.IgnoreForRoomClear = AIActor.IgnoreForRoomClear; aiactor.AssignedCurrencyToDrop = AIActor.AssignedCurrencyToDrop; aiactor.AdditionalSafeItemDrops = AIActor.AdditionalSafeItemDrops; aiactor.AdditionalSimpleItemDrops = AIActor.AdditionalSimpleItemDrops; aiactor.CanTargetEnemies = AIActor.CanTargetEnemies; aiactor.CanTargetPlayers = AIActor.CanTargetPlayers; if (AIActor.IsInReinforcementLayer) { aiactor.HandleReinforcementFallIntoRoom(0f); } if (AIActor.GetComponent <KillOnRoomClear>() != null) { KillOnRoomClear kill = aiactor.gameObject.GetOrAddComponent <KillOnRoomClear>(); kill.overrideDeathAnim = AIActor.GetComponent <KillOnRoomClear>().overrideDeathAnim; kill.preventExplodeOnDeath = AIActor.GetComponent <KillOnRoomClear>().preventExplodeOnDeath; } if (aiactor.EnemyGuid == "249db525a9464e5282d02162c88e0357") { if (aiactor.gameObject.GetComponent <SpawnEnemyOnDeath>()) { UnityEngine.Object.Destroy(aiactor.gameObject.GetComponent <SpawnEnemyOnDeath>()); } } else if (EasyEnemyTypeLists.VanillaMimics.Contains(aiactor.EnemyGuid)) { if (AIActor.AdditionalSafeItemDrops != null && aiactor.AdditionalSafeItemDrops != null) { List <PickupObject> newDrops = new List <PickupObject>(); PickupObject.ItemQuality qual = PickupObject.ItemQuality.D; int itemsToReAdd = 0; for (int i = (aiactor.AdditionalSafeItemDrops.Count - 1); i >= 0; i--) { if (!BabyGoodChanceKin.lootIDlist.Contains(aiactor.AdditionalSafeItemDrops[i].PickupObjectId)) { qual = aiactor.AdditionalSafeItemDrops[i].quality; itemsToReAdd++; } else { newDrops.Add(PickupObjectDatabase.GetById(aiactor.AdditionalSafeItemDrops[i].PickupObjectId)); } } if (itemsToReAdd > 0) { for (int i = 0; i < itemsToReAdd; i++) { PickupObject item = LootEngine.GetItemOfTypeAndQuality <PassiveItem>(qual, null, false); if (UnityEngine.Random.value <= 0.5f) { item = LootEngine.GetItemOfTypeAndQuality <Gun>(qual, null, false); } newDrops.Add(item); } aiactor.AdditionalSafeItemDrops = newDrops; } } } GameManager.Instance.StartCoroutine(Shrimk(aiactor)); GameManager.Instance.StartCoroutine(Shrimk(AIActor)); aiactor.specRigidbody.Reinitialize(); yield break; }
private IEnumerator BecomeMimic() { PlayerController player = GameManager.Instance.PrimaryPlayer; PlayerController player2 = GameManager.Instance.SecondaryPlayer; if (!SpawnEnemyMode) { if (player) { if (player.HasPassiveItem(293) && player.HasPassiveItem(CursedBrick.CursedBrickID)) { SpawnEnemyMode = true; } } if (player2) { if (player2.HasPassiveItem(293) && player2.HasPassiveItem(CursedBrick.CursedBrickID)) { SpawnEnemyMode = true; } } } if (m_hands == null) { StartCoroutine(DoIntro()); } if (SpawnEnemyMode) { m_ItemDropOdds += 0.1f; } m_isHidden = false; SpeculativeRigidbody specRigidbody = this.specRigidbody; specRigidbody.OnRigidbodyCollision = (SpeculativeRigidbody.OnRigidbodyCollisionDelegate)Delegate.Remove(specRigidbody.OnRigidbodyCollision, new SpeculativeRigidbody.OnRigidbodyCollisionDelegate(HandleRigidbodyCollision)); SpeculativeRigidbody specRigidbody2 = this.specRigidbody; specRigidbody2.OnBeamCollision = (SpeculativeRigidbody.OnBeamCollisionDelegate)Delegate.Remove(specRigidbody2.OnBeamCollision, new SpeculativeRigidbody.OnBeamCollisionDelegate(HandleBeamCollision)); AIAnimator tongueAnimator = aiAnimator.ChildAnimator; tongueAnimator.renderer.enabled = true; tongueAnimator.spriteAnimator.enabled = true; AIAnimator spitAnimator = tongueAnimator.ChildAnimator; spitAnimator.renderer.enabled = true; spitAnimator.spriteAnimator.enabled = true; tongueAnimator.PlayUntilFinished("spawn", false, null, -1f, false); float delay = tongueAnimator.CurrentClipLength; float timer = 0f; bool hasPlayedVFX = false; while (timer < delay) { yield return(null); timer += BraveTime.DeltaTime; if (!hasPlayedVFX && delay - timer < 0.1f) { hasPlayedVFX = true; if (WallDisappearVFX) { Vector2 zero = Vector2.zero; Vector2 zero2 = Vector2.zero; DungeonData.Direction facingDirection = m_facingDirection; if (facingDirection != DungeonData.Direction.SOUTH) { if (facingDirection != DungeonData.Direction.EAST) { if (facingDirection == DungeonData.Direction.WEST) { zero = new Vector2(0f, -1f); zero2 = new Vector2(0f, 1f); } } else { zero = new Vector2(0f, -1f); zero2 = new Vector2(0f, 1f); } } else { zero = new Vector2(0f, -1f); zero2 = new Vector2(0f, 1f); } Vector2 min = Vector2.Min(pos1.ToVector2(), pos2.ToVector2()) + zero; Vector2 max = Vector2.Max(pos1.ToVector2(), pos2.ToVector2()) + new Vector2(1f, 1f) + zero2; for (int i = 0; i < 5; i++) { Vector2 v = BraveUtility.RandomVector2(min, max, new Vector2(0.25f, 0.25f)) + new Vector2(0f, 1f); GameObject gameObject = SpawnManager.SpawnVFX(WallDisappearVFX, v, Quaternion.identity); tk2dBaseSprite tk2dBaseSprite = (!gameObject) ? null : gameObject.GetComponent <tk2dBaseSprite>(); if (tk2dBaseSprite) { tk2dBaseSprite.HeightOffGround = 8f; tk2dBaseSprite.UpdateZDepth(); } } } } } if (!m_failedWallConfigure && SpawnEnemyMode) { if (aiActor.ParentRoom != null && SpawnEnemyList != null && SpawnEnemyList.Count > 0 && UnityEngine.Random.value <= m_spawnEnemyOdds) { int count2 = this.specRigidbody.PixelColliders.Count; this.specRigidbody.PixelColliders.RemoveAt(count2 - 1); this.specRigidbody.PixelColliders.RemoveAt(count2 - 2); StaticReferenceManager.AllShadowSystemDepthHavers.Remove(m_fakeWall.transform); Destroy(m_fakeWall); Destroy(m_fakeCeiling); Vector3 targetPosForSpawn = m_startingPos + DungeonData.GetIntVector2FromDirection(m_facingDirection).ToVector3(); while (timer < delay) { aiAnimator.LockFacingDirection = true; aiAnimator.FacingDirection = DungeonData.GetAngleFromDirection(m_facingDirection); yield return(null); timer += BraveTime.DeltaTime; transform.position = Vector3.Lerp(m_startingPos, targetPosForSpawn, Mathf.InverseLerp(0.42f, 0.58f, timer)); this.specRigidbody.Reinitialize(); } yield return(null); Vector3 FinalSpawnLocation = transform.position; Vector3 VFXExplosionLocation = transform.position; Vector2 VFXExplosionSource = Vector2.zero; DungeonData.Direction CurrentDirection = m_facingDirection; if (CurrentDirection == DungeonData.Direction.WEST) { FinalSpawnLocation += new Vector3(2.5f, 3.5f); VFXExplosionLocation += new Vector3(3.5f, 3.5f); VFXExplosionSource = new Vector2(1, 0); } else if (CurrentDirection == DungeonData.Direction.EAST) { FinalSpawnLocation += new Vector3(4f, 3.5f); VFXExplosionLocation += new Vector3(3f, 3.5f); } else if (CurrentDirection == DungeonData.Direction.NORTH) { FinalSpawnLocation += new Vector3(3.5f, 4f); VFXExplosionLocation += new Vector3(3.5f, 3f); VFXExplosionSource = new Vector2(0, 1); } else if (CurrentDirection == DungeonData.Direction.SOUTH) { FinalSpawnLocation += new Vector3(3.5f, 1.5f); VFXExplosionLocation += new Vector3(3.5f, 2.5f); } yield return(null); string SelectedEnemy = BraveUtility.RandomElement(SpawnEnemyList); ExplosionData wallMimicExplosionData = new ExplosionData(); wallMimicExplosionData.CopyFrom(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultExplosionData); wallMimicExplosionData.damage = 0f; wallMimicExplosionData.force /= 1.6f; if (SelectedEnemy != "RATCORPSE") { Exploder.Explode(VFXExplosionLocation, wallMimicExplosionData, VFXExplosionSource, ignoreQueues: true, damageTypes: CoreDamageTypes.None); GameObject SpawnVFXObject = Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")); if (SpawnVFXObject) { tk2dBaseSprite SpawnVFXObjectComponent = SpawnVFXObject.GetComponent <tk2dBaseSprite>(); SpawnVFXObjectComponent.PlaceAtPositionByAnchor(FinalSpawnLocation + new Vector3(0f, 0.5f, 0f), tk2dBaseSprite.Anchor.MiddleCenter); SpawnVFXObjectComponent.HeightOffGround = 1f; SpawnVFXObjectComponent.UpdateZDepth(); } AIActor glitchActor = AIActor.Spawn(EnemyDatabase.GetOrLoadByGuid(SelectedEnemy), FinalSpawnLocation, aiActor.ParentRoom, true, AIActor.AwakenAnimationType.Awaken, true); if (glitchActor) { PickupObject.ItemQuality targetGlitchEnemyItemQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.B; GenericLootTable glitchEnemyLootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject glitchEnemyItem = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetGlitchEnemyItemQuality, glitchEnemyLootTable, false); // if (BraveUtility.RandomBool()) { ChaosUtility.MakeCompanion(glitchActor); } if (glitchEnemyItem) { glitchActor.AdditionalSafeItemDrops.Add(glitchEnemyItem); } if (m_isGlitched) { float RandomIntervalFloat = UnityEngine.Random.Range(0.02f, 0.06f); float RandomDispFloat = UnityEngine.Random.Range(0.1f, 0.16f); float RandomDispIntensityFloat = UnityEngine.Random.Range(0.1f, 0.4f); float RandomColorProbFloat = UnityEngine.Random.Range(0.05f, 0.2f); float RandomColorIntensityFloat = UnityEngine.Random.Range(0.1f, 0.25f); targetGlitchEnemyItemQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.B : PickupObject.ItemQuality.C) : PickupObject.ItemQuality.A; glitchEnemyLootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; glitchEnemyItem = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetGlitchEnemyItemQuality, glitchEnemyLootTable, false); if (glitchEnemyItem) { aiActor.AdditionalSafeItemDrops.Add(glitchEnemyItem); } ExpandShaders.Instance.ApplyGlitchShader(glitchActor.sprite, true, RandomIntervalFloat, RandomDispFloat, RandomDispIntensityFloat, RandomColorProbFloat, RandomColorIntensityFloat); } if (glitchActor.ParentRoom != null && !glitchActor.ParentRoom.IsSealed) { glitchActor.IgnoreForRoomClear = true; } } else { // AIActor is null! Time to bail out of this and continue as normal wall mimic! goto IL_ESCAPE; } } else { Exploder.Explode(VFXExplosionLocation, wallMimicExplosionData, VFXExplosionSource, ignoreQueues: true, damageTypes: CoreDamageTypes.None); GameObject SpawnVFXObject = Instantiate((GameObject)ResourceCache.Acquire("Global VFX/VFX_Item_Spawn_Poof")); tk2dBaseSprite SpawnVFXObjectComponent = SpawnVFXObject.GetComponent <tk2dBaseSprite>(); SpawnVFXObjectComponent.PlaceAtPositionByAnchor(FinalSpawnLocation + new Vector3(0f, 0.5f, 0f), tk2dBaseSprite.Anchor.MiddleCenter); SpawnVFXObjectComponent.HeightOffGround = 1f; SpawnVFXObjectComponent.UpdateZDepth(); GameObject spawnedRatCorpseObject = Instantiate(ExpandPrefabs.RatCorpseNPC, FinalSpawnLocation, Quaternion.identity); TalkDoerLite talkdoerComponent = spawnedRatCorpseObject.GetComponent <TalkDoerLite>(); talkdoerComponent.transform.position.XY().GetAbsoluteRoom().RegisterInteractable(talkdoerComponent); talkdoerComponent.transform.position.XY().GetAbsoluteRoom().TransferInteractableOwnershipToDungeon(talkdoerComponent); talkdoerComponent.playmakerFsm.SetState("Set Mode"); ExpandUtility.AddHealthHaver(talkdoerComponent.gameObject, 60, flashesOnDamage: false, exploderSpawnsItem: true); } yield return(null); Destroy(gameObject); yield break; } } IL_ESCAPE: PickupObject.ItemQuality targetQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.C : PickupObject.ItemQuality.D) : PickupObject.ItemQuality.B; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { if (CursedBrickMode) { if (UnityEngine.Random.value <= m_ItemDropOdds | m_isGlitched) { aiActor.AdditionalSafeItemDrops.Add(item); } else { aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); if (BraveUtility.RandomBool()) { aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); } if (SpawnEnemyMode) { aiActor.AdditionalSafeItemDrops.Add(PickupObjectDatabase.GetById(70)); } } if (SpawnEnemyMode && UnityEngine.Random.value <= m_FriendlyMimicOdds) { m_isFriendlyMimic = true; } if (m_isGlitched) { float RandomIntervalFloat = UnityEngine.Random.Range(0.02f, 0.06f); float RandomDispFloat = UnityEngine.Random.Range(0.1f, 0.16f); float RandomDispIntensityFloat = UnityEngine.Random.Range(0.1f, 0.4f); float RandomColorProbFloat = UnityEngine.Random.Range(0.05f, 0.2f); float RandomColorIntensityFloat = UnityEngine.Random.Range(0.1f, 0.25f); targetQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.B : PickupObject.ItemQuality.C) : PickupObject.ItemQuality.A; lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { aiActor.AdditionalSafeItemDrops.Add(item); } ExpandShaders.Instance.ApplyGlitchShader(sprite, true, RandomIntervalFloat, RandomDispFloat, RandomDispIntensityFloat, RandomColorProbFloat, RandomColorIntensityFloat); } } else { aiActor.AdditionalSafeItemDrops.Add(item); } } if (CursedBrickMode && SpawnEnemyMode && UnityEngine.Random.value <= m_FriendlyMimicOdds) { m_isFriendlyMimic = true; } aiActor.enabled = true; behaviorSpeculator.enabled = true; if (aiActor.ParentRoom != null && aiActor.ParentRoom.IsSealed && !m_isFriendlyMimic) { aiActor.IgnoreForRoomClear = false; } // if (m_isFriendlyMimic) { ExpandUtility.MakeCompanion(aiActor); } if (m_isFriendlyMimic) { aiActor.ApplyEffect(GameManager.Instance.Dungeon.sharedSettingsPrefab.DefaultPermanentCharmEffect, 1f, null); } if (!m_failedWallConfigure) { int count = this.specRigidbody.PixelColliders.Count; for (int j = 0; j < count - 2; j++) { this.specRigidbody.PixelColliders[j].Enabled = true; } this.specRigidbody.PixelColliders.RemoveAt(count - 1); this.specRigidbody.PixelColliders.RemoveAt(count - 2); StaticReferenceManager.AllShadowSystemDepthHavers.Remove(m_fakeWall.transform); Destroy(m_fakeWall); Destroy(m_fakeCeiling); } else { int count = this.specRigidbody.PixelColliders.Count; for (int j = 0; j < count; j++) { this.specRigidbody.PixelColliders[j].Enabled = true; } } for (int k = 0; k < m_hands.Length; k++) { m_hands[k].gameObject.SetActive(true); } aiActor.ToggleRenderers(true); if (aiShooter) { aiShooter.ToggleGunAndHandRenderers(true, "ExpandWallMimicManager"); } aiActor.IsGone = false; healthHaver.IsVulnerable = true; aiActor.State = AIActor.ActorState.Normal; for (int l = 0; l < m_hands.Length; l++) { m_hands[l].gameObject.SetActive(false); } m_isFinished = true; delay = 0.58f; timer = 0f; Vector3 targetPos = m_startingPos + DungeonData.GetIntVector2FromDirection(m_facingDirection).ToVector3(); while (timer < delay) { aiAnimator.LockFacingDirection = true; aiAnimator.FacingDirection = DungeonData.GetAngleFromDirection(m_facingDirection); yield return(null); timer += BraveTime.DeltaTime; transform.position = Vector3.Lerp(m_startingPos, targetPos, Mathf.InverseLerp(0.42f, 0.58f, timer)); this.specRigidbody.Reinitialize(); } aiAnimator.LockFacingDirection = false; knockbackDoer.SetImmobile(false, "ExpandWallMimicManager"); aiActor.CollisionDamage = 0.5f; aiActor.CollisionKnockbackStrength = m_collisionKnockbackStrength; yield break; }
public static void PlaceItemInAmmonomiconAfterItemById(this PickupObject item, int id) //from SpAPI's items { item.ForcedPositionInAmmonomicon = PickupObjectDatabase.GetById(id).ForcedPositionInAmmonomicon; }
internal void AddDefaultCommands() { _LoggerSubscriber = (logger, loglevel, indent, str) => { PrintLine(logger.String(loglevel, str, indent: indent), color: _LoggerColors[loglevel]); }; AddCommand("!!", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Execute(histindex.Value - 1)); }); AddCommand("!'", (args, histindex) => { if (histindex - 1 < 0) { throw new Exception("Can't run previous command (history is empty)."); } return(History.Entries[histindex.Value - 1]); }); AddCommand("echo", (args) => { return(string.Join(" ", args.ToArray())); }).WithSubCommand("hello", (args) => { return("Hello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!\nHello, world!"); }); AddGroup("debug") .WithSubCommand("parser-bounds-test", (args) => { var text = "echo Hello! \"Hello world!\" This\\ is\\ great \"It\"works\"with\"\\ wacky\" stuff\" \\[\\] \"\\[\\]\" [e[echo c][echo h][echo [echo \"o\"]] \"hel\"[echo lo][echo !]]"; CurrentCommandText = text; return(null); }) .WithSubCommand("giveid", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required."); } var pickup_obj = PickupObjectDatabase.Instance.InternalGetById(int.Parse(args[0])); if (pickup_obj == null) { return("Item ID {args[0]} doesn't exist!"); } LootEngine.TryGivePrefabToPlayer(pickup_obj.gameObject, GameManager.Instance.PrimaryPlayer, true); return(pickup_obj.EncounterNameOrDisplayName); }); AddGroup("pool") .WithSubGroup( new Group("items") .WithSubCommand("idof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (numeric ID)."); } var id = int.Parse(args[0]); foreach (var pair in ETGMod.Items.Pairs) { if (pair.Value.PickupObjectId == id) { return(pair.Key); } } return("Entry not found."); }) .WithSubCommand("nameof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(_GetPickupObjectName(pair.Value)); } } return("Entry not found."); }) .WithSubCommand("numericof", (args) => { if (args.Count < 1) { throw new Exception("Exactly 1 argument required (ID)."); } var id = args[0]; foreach (var pair in ETGMod.Items.Pairs) { if (pair.Key == id) { return(pair.Value.PickupObjectId.ToString()); } } return("Entry not found."); }) .WithSubCommand("list", (args) => { var s = new StringBuilder(); var pairs = new List <KeyValuePair <string, PickupObject> >(); foreach (var pair in ETGMod.Items.Pairs) { pairs.Add(pair); } foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } } pairs.Sort((x, y) => string.Compare(_GetPickupObjectName(x.Value), _GetPickupObjectName(y.Value))); foreach (var pair in pairs) { if (_GetPickupObjectName(pair.Value) == "NO NAME") { continue; } s.AppendLine($"[{pair.Key}] {_GetPickupObjectName(pair.Value)}"); } return(s.ToString()); }) .WithSubCommand("random", (args) => { return(ETGMod.Items.RandomKey); }) ); AddCommand("listmods", (args) => { var s = new StringBuilder(); s.AppendLine("Loaded mods:"); foreach (var mod in ETGMod.ModLoader.LoadedMods) { _GetModInfo(s, mod); } return(s.ToString()); }); AddCommand("give", (args) => { LootEngine.TryGivePrefabToPlayer(ETGMod.Items[args[0]].gameObject, GameManager.Instance.PrimaryPlayer, true); return(args[0]); }); AddGroup("dump") .WithSubCommand("items", (args) => { var b = new StringBuilder(); var db = PickupObjectDatabase.Instance.Objects; for (int i = 0; i < db.Count; i++) { PickupObject obj = null; string name = null; try { obj = db[i]; } catch { name = "[ERROR: failed getting object by index]"; } if (obj != null) { try { var displayname = obj.encounterTrackable.journalData.PrimaryDisplayName; name = StringTableManager.ItemTable[displayname].GetWeightedString(); } catch { name = "[ERROR: failed getting ammonomicon name]"; } if (name == null) { try { name = obj.EncounterNameOrDisplayName; } catch { name = "[ERROR: failed getting encounter or display name]"; } } } if (name == null && obj != null) { name = "[NULL NAME (but object is not null)]"; } if (name != null) { b.AppendLine($"{i}: {name}"); _Logger.Info($"{i}: {name}"); } } return(b.ToString()); }); AddGroup("log") .WithSubCommand("sub", (args) => { if (_Subscribed) { return("Already subscribed."); } Logger.Subscribe(_LoggerSubscriber); _Subscribed = true; return("Done."); }) .WithSubCommand("unsub", (args) => { if (!_Subscribed) { return("Not subscribed yet."); } Logger.Unsubscribe(_LoggerSubscriber); _Subscribed = false; return("Done."); }) .WithSubCommand("level", (args) => { if (args.Count == 0) { return(_LogLevel.ToString().ToLowerInvariant()); } else { switch (args[0]) { case "debug": _LogLevel = Logger.LogLevel.Debug; break; case "info": _LogLevel = Logger.LogLevel.Info; break; case "warn": _LogLevel = Logger.LogLevel.Warn; break; case "error": _LogLevel = Logger.LogLevel.Error; break; default: throw new Exception($"Unknown log level '{args[0]}"); } return("Done."); } }); }
public static WeightedGameObject FindWeightedGameObjectInCollection(this WeightedGameObjectCollection collection, PickupObject po) { WeightedGameObject go = collection.FindWeightedGameObjectInCollection(po.PickupObjectId); if (go == null) { go = collection.FindWeightedGameObjectInCollection(po.gameObject); } return(go); }
public static GameObject BuildPrefab(string name, string guid, string defaultSpritePath, IntVector2 hitboxOffset, IntVector2 hitBoxSize, bool HasAiShooter, bool UsesAttackGroup = false) { if (BossBuilder.Dictionary.ContainsKey(guid)) { ETGModConsole.Log("BossBuilder: Yea something went wrong. Complain to Neighborino about it."); return(null); } var prefab = GameObject.Instantiate(behaviorSpeculatorPrefab); prefab.name = name; //setup misc components var sprite = SpriteBuilder.SpriteFromResource(defaultSpritePath, prefab).GetComponent <tk2dSprite>(); sprite.SetUpSpeculativeRigidbody(hitboxOffset, hitBoxSize).CollideWithOthers = true; prefab.AddComponent <tk2dSpriteAnimator>(); prefab.AddComponent <AIAnimator>(); PickupObject item = PickupObjectDatabase.GetById(291); //setup knockback var knockback = prefab.AddComponent <KnockbackDoer>(); knockback.weight = 1; //setup health haver var healthHaver = prefab.AddComponent <HealthHaver>(); healthHaver.RegisterBodySprite(sprite); healthHaver.PreventAllDamage = false; healthHaver.SetHealthMaximum(15000); healthHaver.FullHeal(); //setup AI Actor var aiActor = prefab.AddComponent <AIActor>(); aiActor.State = AIActor.ActorState.Normal; aiActor.EnemyGuid = guid; aiActor.HasShadow = false; //setup behavior speculator var bs = prefab.GetComponent <BehaviorSpeculator>(); bs.MovementBehaviors = new List <MovementBehaviorBase>(); bs.TargetBehaviors = new List <TargetBehaviorBase>(); bs.OverrideBehaviors = new List <OverrideBehaviorBase>(); bs.OtherBehaviors = new List <BehaviorBase>(); bs.AttackBehaviorGroup.AttackBehaviors = new List <AttackBehaviorGroup.AttackGroupItem>(); if (HasAiShooter) { var actor = EnemyDatabase.GetOrLoadByGuid("01972dee89fc4404a5c408d50007dad5"); behaviorSpeculatorPrefab = GameObject.Instantiate(actor.gameObject); foreach (Transform child in behaviorSpeculatorPrefab.transform) { if (child != behaviorSpeculatorPrefab.transform) { GameObject.DestroyImmediate(child); } } foreach (var comp in behaviorSpeculatorPrefab.GetComponents <Component>()) { if (comp.GetType() != typeof(BehaviorSpeculator)) { GameObject.DestroyImmediate(comp); } } GameObject.DontDestroyOnLoad(behaviorSpeculatorPrefab); FakePrefab.MarkAsFakePrefab(behaviorSpeculatorPrefab); behaviorSpeculatorPrefab.SetActive(false); } else { AIBulletBank aibulletBank = prefab.AddComponent <AIBulletBank>(); } //Add to enemy database EnemyDatabaseEntry enemyDatabaseEntry = new EnemyDatabaseEntry { myGuid = guid, placeableWidth = 2, placeableHeight = 2, isNormalEnemy = true, path = guid, isInBossTab = true, encounterGuid = guid, }; EnemyDatabase.Instance.Entries.Add(enemyDatabaseEntry); BossBuilder.Dictionary.Add(guid, prefab); //finalize GameObject.DontDestroyOnLoad(prefab); FakePrefab.MarkAsFakePrefab(prefab); prefab.SetActive(false); return(prefab); }
internal void Pickup(PickupObject obj) { obj.Consume(this); }
internal static IEnumerator ListAllItemsAndGuns() { yield return(new WaitForSeconds(1)); int count = 0; while (PickupObjectDatabase.Instance == null) { yield return(new WaitForEndOfFrame()); } for (int i = 0; i < PickupObjectDatabase.Instance.Objects.Count; i++) { PickupObject obj = PickupObjectDatabase.Instance.Objects[i]; if (obj == null) { continue; } if (obj.encounterTrackable == null) { continue; } if (obj.encounterTrackable.journalData == null) { continue; } string name = obj.encounterTrackable.journalData.GetPrimaryDisplayName(true).Replace(' ', '_').ToLower(); count++; // Handle Master Rounds specially because we actually care about the order if (name == "master_round") { string objectname = obj.gameObject.name; int floornumber = 420; switch (objectname.Substring("MasteryToken_".Length)) { case "Castle": // Keep of the Lead Lord floornumber = 1; break; case "Gungeon": // Gungeon Proper floornumber = 2; break; case "Mines": floornumber = 3; break; case "Catacombs": // Hollow floornumber = 4; break; case "Forge": floornumber = 5; break; } name = name + "_" + floornumber; } if (ETGModConsole.AllItems.ContainsKey(name)) { int appendindex = 2; while (ETGModConsole.AllItems.ContainsKey(name + "_" + appendindex.ToString())) { appendindex++; } name = name + "_" + appendindex.ToString(); } ETGModConsole.AllItems.Add(name, i); if (count >= 30) { count = 0; yield return(null); } } //Add command arguments. Debug.Log(ETGModConsole.AllItems.Values.Count + " give command args"); }
// Update is called once per frame void Update() { if (Global.currentPuzzle == 3) { // move camera across from puzzle one Vector3 movingBoxCameraPosition = new Vector3(movingBoxCollider.position.x, movingBoxCollider.position.y + 10f, movingBoxCollider.position.z); aboveWarehouseCam.position = movingBoxCameraPosition; Global.monitor.GetComponent <Renderer>().material = aboveWarehouse; // these lights break with realtime lighting //redLight.enabled = true; //blueLight.enabled = true; //greenLight.enabled = true; //yellowLight.enabled = true; redPlane.enabled = true; bluePlane.enabled = true; greenPlane.enabled = true; yellowPlane.enabled = true; puzzleThreeStarted = true; } if (puzzleThreeStarted == true && Global.currentPuzzle == 3) { // RED for (int i = 0; i < redBoxes.Length; i++) { GameObject redBox = redBoxes[i]; Transform redBoxT = redBox.transform; distanceFromRedGoal = Vector3.Distance(redBoxT.position, redGoal.position); // has the box been placed over the goal? if (redInPosition[i] == false && distanceFromRedGoal < goalRange && redPlane.enabled == true && redBox.activeSelf == true) { // set this to true, so that on the next iteration, the next if statement will be entered, and this one will not redInPosition[i] = true; // drop the object if the player is carrying it if (PickupObject.carrying == true) { PickupObject.dropObject(); } } // if this box has been placed over the goal if (redInPosition[i] == true) { // move box toward the end of the tunnel redBox.GetComponent <Transform>().position = Vector3.MoveTowards(redBox.GetComponent <Transform>().position, behindRedGoal.position, step); // see how far it is from reaching the end of the tunnel redDistance = Vector3.Distance(redBox.GetComponent <Transform>().position, behindRedGoal.position); if (redDistance < 0.5) { // disable the cube redBox.SetActive(false); // have to set it to false or else it'll enter this if statement for infiniti and keep incrementing redCount redInPosition[i] = false; // update redCount so we know how many have been placed in the console redCount++; } } } // BLUE for (int i = 0; i < blueBoxes.Length; i++) { GameObject blueBox = blueBoxes[i]; Transform blueBoxT = blueBox.transform; distanceFromBlueGoal = Vector3.Distance(blueBoxT.position, blueGoal.position); if (blueInPosition[i] == false && distanceFromBlueGoal < goalRange && bluePlane.enabled == true && blueBox.activeSelf == true) { blueInPosition[i] = true; if (PickupObject.carrying == true) { PickupObject.dropObject(); } } if (blueInPosition[i] == true) { blueBox.GetComponent <Transform>().position = Vector3.MoveTowards(blueBox.GetComponent <Transform>().position, behindBlueGoal.position, step); blueDistance = Vector3.Distance(blueBox.GetComponent <Transform>().position, behindBlueGoal.position); if (blueDistance < 0.5) { blueBox.SetActive(false); blueInPosition[i] = false; blueCount++; } } } // GREEN for (int i = 0; i < greenBoxes.Length; i++) { GameObject greenBox = greenBoxes[i]; Transform greenBoxT = greenBox.transform; distanceFromGreenGoal = Vector3.Distance(greenBoxT.position, greenGoal.position); if (greenInPosition[i] == false && distanceFromGreenGoal < goalRange && greenPlane.enabled == true && greenBox.activeSelf == true) { greenInPosition[i] = true; if (PickupObject.carrying == true) { PickupObject.dropObject(); } } if (greenInPosition[i] == true) { greenBox.GetComponent <Transform>().position = Vector3.MoveTowards(greenBox.GetComponent <Transform>().position, behindGreenGoal.position, step); greenDistance = Vector3.Distance(greenBox.GetComponent <Transform>().position, behindGreenGoal.position); if (greenDistance < 0.5) { greenBox.SetActive(false); greenInPosition[i] = false; greenCount++; } } } // YELLOW for (int i = 0; i < yellowBoxes.Length; i++) { GameObject yellowBox = yellowBoxes[i]; Transform yellowBoxT = yellowBox.transform; distanceFromYellowGoal = Vector3.Distance(yellowBoxT.position, yellowGoal.position); if (yellowInPosition[i] == false && distanceFromYellowGoal < goalRange && yellowPlane.enabled == true && yellowBox.activeSelf == true) { yellowInPosition[i] = true; if (PickupObject.carrying == true) { PickupObject.dropObject(); } } if (yellowInPosition[i] == true) { yellowBox.GetComponent <Transform>().position = Vector3.MoveTowards(yellowBox.GetComponent <Transform>().position, behindYellowGoal.position, step); yellowDistance = Vector3.Distance(yellowBox.GetComponent <Transform>().position, behindYellowGoal.position); if (yellowDistance < 0.5) { yellowBox.SetActive(false); yellowInPosition[i] = false; yellowCount++; } } } // end of yellow } }
// Use this for initialization void Start() { player = transform.root.GetComponentInChildren<Player>(); pickup_object_script = player.GetComponent<PickupObject>(); pointer = GameObject.Find("PointerRoot").transform; pointer_stick = GameObject.Find("Pointer_stick").gameObject; line = pointer_stick.GetComponent<LineRenderer>(); if(!Settings.debug) { GameObject.Find("Pointer").renderer.enabled = false; pointer_stick.renderer.enabled = false; } laser = GameObject.Find ("laserDot").gameObject.GetComponent<LaserControl>(); pbox = GameObject.Find("Pointer").transform; }
private void HandleRandomEffect(PlayerController player) { if (m_PickedUp | AllowedEffects == null | AllowedEffects.Count <= 0) { return; } ExpandShaders.Instance.GlitchScreenForDuration(); AllowedEffects = AllowedEffects.Shuffle(); m_SelectedEffect = BraveUtility.RandomElement(AllowedEffects); if (m_SelectedEffect == ItemEffectType.ArmorUp) { player.healthHaver.Armor += 10f; } else if (m_SelectedEffect == ItemEffectType.BigCash) { player.carriedConsumables.Currency = 999; } else if (m_SelectedEffect == ItemEffectType.ManyKeys) { player.carriedConsumables.KeyBullets = 999; } else if (m_SelectedEffect == ItemEffectType.BlanksRUS) { PickupObject blankPickup = PickupObjectDatabase.GetById(224); for (int i = 0; i < UnityEngine.Random.Range(5, 10); i++) { if (blankPickup) { LootEngine.GivePrefabToPlayer(blankPickup.gameObject, player); } } } else if (m_SelectedEffect == ItemEffectType.HealthPak) { if (player.characterIdentity != PlayableCharacters.Robot) { StatModifier healthUp = new StatModifier() { statToBoost = PlayerStats.StatType.Health, amount = UnityEngine.Random.Range(4, 6), modifyType = StatModifier.ModifyMethod.ADDITIVE, isMeatBunBuff = false, }; player.ownerlessStatModifiers.Add(healthUp); player.stats.RecalculateStats(player, false, false); } else { player.healthHaver.Armor += UnityEngine.Random.Range(4, 6); } } else if (m_SelectedEffect == ItemEffectType.DrStone) { PickupObject glassStone = PickupObjectDatabase.GetById(565); for (int i = 0; i < UnityEngine.Random.Range(8, 12); i++) { if (glassStone) { LootEngine.GivePrefabToPlayer(glassStone.gameObject, player); } } } else if (m_SelectedEffect == ItemEffectType.MuchAmmo) { StatModifier ManyBullets = new StatModifier() { statToBoost = PlayerStats.StatType.AmmoCapacityMultiplier, amount = UnityEngine.Random.Range(1.5f, 3), modifyType = StatModifier.ModifyMethod.MULTIPLICATIVE, isMeatBunBuff = false, }; player.ownerlessStatModifiers.Add(ManyBullets); player.stats.RecalculateStats(player, false, false); } return; }
private void SelfDestructOnKick() { int currentCurse = PlayerStats.GetTotalCurse(); int currentCoolness = PlayerStats.GetTotalCoolness(); float ExplodeOnKickChances = 0.25f; float ExplodeOnKickDamageToEnemies = 150f; bool ExplodeOnKickDamagesPlayer = BraveUtility.RandomBool(); if (willDefinitelyExplode) { ExplodeOnKickChances = 1f; ExplodeOnKickDamagesPlayer = false; ExplodeOnKickDamageToEnemies = 200f; } else { if (currentCoolness >= 3) { ExplodeOnKickDamagesPlayer = false; ExplodeOnKickDamageToEnemies = 175f; } if (currentCurse >= 3) { ExplodeOnKickChances = 0.35f; ExplodeOnKickDamageToEnemies = 200f; } } if (spawnObjectOnSelfDestruct && SpawnedObject != null && !m_objectSpawned) { m_objectSpawned = true; GameObject PlacedGlitchObject = ChaosUtility.GenerateDungeonPlacable(SpawnedObject, false, true).InstantiateObject(transform.position.GetAbsoluteRoom(), (specRigidbody.GetUnitCenter(ColliderType.HitBox) - transform.position.GetAbsoluteRoom().area.basePosition.ToVector2()).ToIntVector2(VectorConversions.Floor)); PlacedGlitchObject.transform.parent = transform.position.GetAbsoluteRoom().hierarchyParent; if (PlacedGlitchObject.GetComponent <PickupObject>() != null) { PickupObject PlacedGltichObjectComponent = PlacedGlitchObject.GetComponent <PickupObject>(); PlacedGltichObjectComponent.RespawnsIfPitfall = true; } } if (UnityEngine.Random.value <= ExplodeOnKickChances) { if (useDefaultExplosion) { Exploder.DoDefaultExplosion(specRigidbody.GetUnitCenter(ColliderType.HitBox), Vector2.zero, null, true, CoreDamageTypes.None); Exploder.DoRadialDamage(ExplodeOnKickDamageToEnemies, sprite.WorldCenter, 4f, ExplodeOnKickDamagesPlayer, true, true); } else { Exploder.Explode(specRigidbody.GetUnitCenter(ColliderType.HitBox), TableExplosionData, Vector2.zero, null, false, CoreDamageTypes.None, false); } /*if (gameObject.GetComponent<FlippableCover>() != null) { * FlippableCover flippableCover = gameObject.GetComponent<FlippableCover>(); * flippableCover.DestroyCover(); * } else if (gameObject.GetComponent<MajorBreakable>() != null) { * MajorBreakable majorBreakableComponent = gameObject.GetComponent<MajorBreakable>(); * if (m_lastDirectionKicked.HasValue) { * majorBreakableComponent.Break(m_lastDirectionKicked.Value.ToVector2()); * } else { * majorBreakableComponent.Break(new Vector2(0, 0)); * } * } else if (gameObject.GetComponent<MinorBreakable>() != null) { * MinorBreakable minorBreakableComponent = gameObject.GetComponent<MinorBreakable>(); * minorBreakableComponent.Break(); * } else { * Destroy(gameObject); * }*/ Destroy(gameObject); return; } return; }
void Awake() { respawnPosition = GameObject.Find ("TeaObjectRespawn").transform.position; pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); }
// Use this for initialization void Start() { GetComponent<Renderer>().material = new Material(defaultMaterial); pickup = GameObject.Find("Player").GetComponent<PickupObject>(); clicked = false; }
public static void RemovePeskyQuestionmark(this PickupObject item) { EncounterDatabase.GetEntry(item.encounterTrackable.EncounterGuid).journalData.SuppressKnownState = false; }
// Token: 0x060000C7 RID: 199 RVA: 0x00009464 File Offset: 0x00007664 public static AdvancedSynergyEntry Add(string name, List <string> mandatoryConsoleIDs, List <string> optionalConsoleIDs = null, bool ignoreLichEyeBullets = true) { bool flag = mandatoryConsoleIDs == null || mandatoryConsoleIDs.Count == 0; AdvancedSynergyEntry result; if (flag) { ETGModConsole.Log("Synergy " + name + " has no mandatory items/guns.", false); result = null; } else { List <int> list = new List <int>(); List <int> list2 = new List <int>(); List <int> list3 = new List <int>(); List <int> list4 = new List <int>(); foreach (string text in mandatoryConsoleIDs) { PickupObject pickupObject = Game.Items[text]; bool flag2 = pickupObject && pickupObject.GetComponent <Gun>(); if (flag2) { list2.Add(pickupObject.PickupObjectId); } else { bool flag3 = pickupObject && (pickupObject.GetComponent <PlayerItem>() || pickupObject.GetComponent <PassiveItem>()); if (flag3) { list.Add(pickupObject.PickupObjectId); } } } bool flag4 = optionalConsoleIDs != null; if (flag4) { foreach (string text2 in optionalConsoleIDs) { PickupObject pickupObject = Game.Items[text2]; bool flag5 = pickupObject && pickupObject.GetComponent <Gun>(); if (flag5) { list4.Add(pickupObject.PickupObjectId); } else { bool flag6 = pickupObject && (pickupObject.GetComponent <PlayerItem>() || pickupObject.GetComponent <PassiveItem>()); if (flag6) { list3.Add(pickupObject.PickupObjectId); } } } } AdvancedSynergyEntry advancedSynergyEntry = new AdvancedSynergyEntry { NameKey = name, MandatoryItemIDs = list, MandatoryGunIDs = list2, OptionalItemIDs = list3, OptionalGunIDs = list4, bonusSynergies = new List <CustomSynergyType>(), statModifiers = new List <StatModifier>() }; CustomSynergies.Add(advancedSynergyEntry); result = advancedSynergyEntry; } return(result); }
private void Start() { pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); lockedIn = false; }
private void OnOpenedChest(Chest chest, PlayerController player) { AkSoundEngine.PostEvent("Play_ENM_creecher_peel_01", base.gameObject); if (chest.breakAnimName.Contains("wood")) { PickupObject pickupObject = this.OpenD(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } if (chest.breakAnimName.Contains("silver")) { PickupObject pickupObject = this.OpenC(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } if (chest.breakAnimName.Contains("green")) { PickupObject pickupObject = this.OpenB(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } if (chest.breakAnimName.Contains("redgold")) { PickupObject pickupObject = this.OpenA(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } if (chest.breakAnimName.Contains("black")) { PickupObject pickupObject = this.OpenS(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } else if (!chest.breakAnimName.Contains("black") && !chest.breakAnimName.Contains("redgold") && !chest.breakAnimName.Contains("green") && !chest.breakAnimName.Contains("silver") && !chest.breakAnimName.Contains("wood")) { PickupObject pickupObject = this.OpenRandom(player); StatModifier statModifier = new StatModifier(); statModifier.statToBoost = PlayerStats.StatType.Curse; statModifier.amount = 2f; statModifier.modifyType = StatModifier.ModifyMethod.ADDITIVE; if (pickupObject is Gun) { Gun gun = pickupObject as Gun; Array.Resize <StatModifier>(ref gun.passiveStatModifiers, gun.passiveStatModifiers.Length + 1); gun.passiveStatModifiers[gun.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PassiveItem) { PassiveItem passiveItem = pickupObject as PassiveItem; Array.Resize <StatModifier>(ref passiveItem.passiveStatModifiers, passiveItem.passiveStatModifiers.Length + 1); passiveItem.passiveStatModifiers[passiveItem.passiveStatModifiers.Length - 1] = statModifier; } else if (pickupObject is PlayerItem) { PlayerItem playerItem = pickupObject as PlayerItem; Array.Resize <StatModifier>(ref playerItem.passiveStatModifiers, playerItem.passiveStatModifiers.Length + 1); playerItem.passiveStatModifiers[playerItem.passiveStatModifiers.Length - 1] = statModifier; } } }
void Awake() { if(Application.loadedLevelName != "MenuTest") { playerTeaCeremony = GameObject.Find("MainPlayer").GetComponent<PlayerTeaCeremony>(); playerTeaCeremony.dialogTree = this; pickup_object_script = GameObject.Find("MainPlayer").GetComponent<PickupObject>(); if(!Settings.start_allow_actions) pickup_object_script.enabled = false; } }
private IEnumerator DoRickRoll() { yield return(new WaitForSeconds(0.1f)); GameObject m_RickRollInstance = Instantiate(RickRollAnimationObject, (transform.position + new Vector3(0.1f, 0.5f, 0)), Quaternion.identity); Vector3 RickScale = new Vector2(0.2f, 0.2f).ToVector3ZUp(1f); m_RickRollInstance.layer = LayerMask.NameToLayer("Unpixelated"); m_RickRollInstance.transform.localScale = RickScale; if (majorBreakable) { majorBreakable.TemporarilyInvulnerable = true; } if (sprite) { sprite.HeightOffGround = -2f; sprite.UpdateZDepth(); } tk2dSpriteAnimator m_RickRollAnimator = m_RickRollInstance.GetComponent <tk2dSpriteAnimator>(); m_RickRollAnimator.Play("RickRollAnimation_Rise"); while (m_RickRollAnimator.IsPlaying("RickRollAnimation_Rise")) { yield return(null); } m_RickRollAnimator.Play("RickRollAnimation"); if (!ExpandSettings.youtubeSafeMode) { AkSoundEngine.PostEvent("Play_EX_RickRollMusic_01", gameObject); } else { GameManager.Instance.StartCoroutine(DoYouTubeSafeAnnouncement(new Vector3(1.5f, 3.5f))); } yield return(new WaitForSeconds(10)); Destroy(m_RickRollInstance); if (majorBreakable) { majorBreakable.TemporarilyInvulnerable = false; } yield return(null); spriteAnimator.Play(breakAnimName); specRigidbody.enabled = false; IsBroken = true; Transform shadowTransform = transform.Find("Expand_RickRollChestShadow"); if (shadowTransform != null) { Destroy(shadowTransform.gameObject); } if (m_room.npcSealState != RoomHandler.NPCSealState.SealNone) { m_room.npcSealState = RoomHandler.NPCSealState.SealNone; } Exploder.DoDefaultExplosion(sprite.WorldCenter, Vector2.zero, null, true, CoreDamageTypes.None, false); yield return(null); PickupObject.ItemQuality targetQuality = (UnityEngine.Random.value >= 0.2f) ? ((!BraveUtility.RandomBool()) ? PickupObject.ItemQuality.B : PickupObject.ItemQuality.C) : PickupObject.ItemQuality.B; GenericLootTable lootTable = (!BraveUtility.RandomBool()) ? GameManager.Instance.RewardManager.GunsLootTable : GameManager.Instance.RewardManager.ItemsLootTable; PickupObject item = LootEngine.GetItemOfTypeAndQuality <PickupObject>(targetQuality, lootTable, false); if (item) { LootEngine.SpawnItem(item.gameObject, sprite.WorldCenter, Vector2.zero, 0f, true, true, false); } yield break; }