コード例 #1
0
        // Token: 0x06007CE5 RID: 31973 RVA: 0x00316054 File Offset: 0x00314254
        public void Interact(PlayerController interactor)
        {
            PrismaticGuonStone.cooldownBehavior cooldownBehavior = interactor.GetComponent <PrismaticGuonStone.cooldownBehavior>();
            Projectile projectile = (PickupObjectDatabase.GetById(508) as Gun).DefaultModule.projectiles[0];

            if (projectile.GetComponentInChildren <tk2dTiledSprite>() != null)
            {
                projectile.GetComponentInChildren <tk2dTiledSprite>().usesOverrideMaterial = true;
                if (interactor.PlayerHasActiveSynergy("Prismatismer Guon Stone"))
                {
                    projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.shader = ShaderCache.Acquire("Brave/Internal/RainbowChestShader");
                    ETGModConsole.Log(projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.HasProperty("_EmissivePower").ToString());
                    projectile.GetComponentInChildren <tk2dTiledSprite>().renderer.material.SetFloat("_HueTestValue", 0);
                }
                else
                {
                    tk2dTiledSprite baseSprite = projectile.GetComponentInChildren <tk2dTiledSprite>();
                    baseSprite.OverrideMaterialMode = tk2dBaseSprite.SpriteMaterialOverrideMode.OVERRIDE_MATERIAL_SIMPLE;
                    Material material = baseSprite.renderer.material;
                    float    value    = 0f;
                    float    value2   = 0f;
                    value  = material.GetFloat("_EmissivePower");
                    value2 = material.GetFloat("_EmissiveColorPower");
                    Shader shader;
                    shader = ShaderCache.Acquire("Brave/LitTk2dCustomFalloffTintableTiltedCutoutEmissive");
                    if (baseSprite.renderer.material.shader != shader)
                    {
                        baseSprite.renderer.material.shader = shader;
                        baseSprite.renderer.material.EnableKeyword("BRIGHTNESS_CLAMP_ON");
                        baseSprite.renderer.material.SetFloat("_EmissivePower", value);
                        baseSprite.renderer.material.SetFloat("_EmissiveColorPower", value2);
                    }
                    baseSprite.renderer.sharedMaterial.SetColor("_OverrideColor", this.outColors[colorCount % 6]);
                    colorCount++;
                }
            }
            float      angle = base.transform.rotation.eulerAngles.z;
            GameObject obj1  = SpawnManager.SpawnProjectile(projectile.gameObject, base.specRigidbody.transform.localPosition.XY(), Quaternion.Euler(0f, 0f, (interactor.CurrentGun == null) ? 0f : angle), true);
            Projectile proj1 = obj1.GetComponent <Projectile>();

            proj1.Owner   = interactor;
            proj1.Shooter = interactor.specRigidbody;
            if (interactor.PlayerHasActiveSynergy("Prismatismer Guon Stone"))
            {
                proj1.baseData.damage = 75f;
            }
            else
            {
                proj1.baseData.damage = 50f;
            }
            cooldownBehavior.parentItem.beamCooldown = 0f;
        }
コード例 #2
0
        // Token: 0x06007CE7 RID: 31975 RVA: 0x0002A087 File Offset: 0x00028287
        public float GetOverrideMaxDistance()
        {
            PlayerController player = GameManager.Instance.PrimaryPlayer;

            PrismaticGuonStone.cooldownBehavior cooldownBehavior = player.GetComponent <PrismaticGuonStone.cooldownBehavior>();
            if (cooldownBehavior.parentItem.beamCooldown > (player.PlayerHasActiveSynergy("Prismatismer Guon Stone") ? 1f : 2f) && player.IsInCombat)
            {
                return(2f);
            }
            else
            {
                return(0.1f);
            }
        }