Inheritance: MonoBehaviour
コード例 #1
0
 private void Start()
 {
     initialPosition = transform.position;
     initialRotation = transform.rotation;
     pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>();
     lockedIn = false;
 }
コード例 #2
0
 // 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;
 }
コード例 #3
0
 // 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;
 }
コード例 #4
0
    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;
    }
コード例 #5
0
ファイル: TutorialObject.cs プロジェクト: jsngai/deepsquid
	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);

	}
コード例 #6
0
 public static void AddItemToSynergy(this PickupObject obj, string nameKey)
 {
     AddItemToSynergy(nameKey, obj.PickupObjectId);
 }
コード例 #7
0
    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);
    }
コード例 #8
0
ファイル: BoxOTools.cs プロジェクト: blazeykat/prismatism
        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>();
            }
        }
コード例 #9
0
 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);
     }
 }
コード例 #10
0
    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;
        }
    }
コード例 #11
0
ファイル: Questlog.cs プロジェクト: UnstableStrafe/CelsItems
        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;
        }
コード例 #12
0
 // 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);
 }
コード例 #13
0
    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;
        }
        }
    }
コード例 #14
0
        private void OnUsedBlank(PlayerController arg1, int arg2)
        {
            PickupObject byId = PickupObjectDatabase.GetById(565);

            Owner.AcquirePassiveItemPrefabDirectly(byId as PassiveItem);
        }
コード例 #15
0
        // 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;
        }
コード例 #16
0
ファイル: PickupObject.cs プロジェクト: dadebert/Semi
 public static string GetUniqueItemID(this PickupObject pickup)
 {
     return(((Patches.PickupObject)(object) pickup).UniqueItemID);
 }
コード例 #17
0
        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");
                }
            });
        }
コード例 #18
0
        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);
                            }
                        }
                    }
                }
            }
        }
コード例 #19
0
        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);
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #20
0
        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();
            }
        }
コード例 #21
0
ファイル: Tree.cs プロジェクト: Mcfli/Moai
    // 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);
        }
	}
コード例 #22
0
ファイル: BoxOTools.cs プロジェクト: blazeykat/prismatism
        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);
        }
コード例 #23
0
        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;
        }
コード例 #24
0
        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;
        }
コード例 #25
0
ファイル: BoxOTools.cs プロジェクト: blazeykat/prismatism
 public static void PlaceItemInAmmonomiconAfterItemById(this PickupObject item, int id) //from SpAPI's items
 {
     item.ForcedPositionInAmmonomicon = PickupObjectDatabase.GetById(id).ForcedPositionInAmmonomicon;
 }
コード例 #26
0
ファイル: DefaultCommands.cs プロジェクト: jeason1997/ETGMod
        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.");
                }
            });
        }
コード例 #27
0
ファイル: BoxOTools.cs プロジェクト: blazeykat/prismatism
        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);
        }
コード例 #28
0
        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);
        }
コード例 #29
0
 internal void Pickup(PickupObject obj)
 {
     obj.Consume(this);
 }
コード例 #30
0
    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");
    }
コード例 #31
0
    // 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
        }
    }
コード例 #32
0
    // 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;
    }
コード例 #33
0
        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;
        }
コード例 #34
0
        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;
        }
コード例 #35
0
 void Awake()
 {
     respawnPosition = GameObject.Find ("TeaObjectRespawn").transform.position;
     pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>();
 }
コード例 #36
0
ファイル: Click.cs プロジェクト: ZachSullivan/VR_Assignment1
 // Use this for initialization
 void Start()
 {
     GetComponent<Renderer>().material = new Material(defaultMaterial);
     pickup = GameObject.Find("Player").GetComponent<PickupObject>();
     clicked = false;
 }
コード例 #37
0
 public static void RemovePeskyQuestionmark(this PickupObject item)
 {
     EncounterDatabase.GetEntry(item.encounterTrackable.EncounterGuid).journalData.SuppressKnownState = false;
 }
コード例 #38
0
        // 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);
        }
コード例 #39
0
 private void Start()
 {
     pickupObject = GameObject.Find("MainPlayer").GetComponent<PickupObject>();
     lockedIn = false;
 }
コード例 #40
0
        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;
                }
            }
        }
コード例 #41
0
 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;
     }
 }
コード例 #42
0
        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;
        }