Пример #1
0
            public override void PostBeamRender(tk2dTiledSprite beam)
            {
                Material material = beam.GetComponent <Renderer>().material;

                material.SetFloat("_BlackBullet", 0.995f);
                material.SetFloat("_EmissiveColorPower", 4.9f);
            }
Пример #2
0
        void Update()
        {
            if (projectile)
            {
                Vector2 position            = projectile.specRigidbody.UnitCenter;
                Vector2 direction           = projectile.LastVelocity.normalized;
                int     thePointOfTheMaskIs = CollisionMask.LayerToMask(CollisionLayer.HighObstacle, CollisionLayer.BulletBlocker, CollisionLayer.EnemyHitBox, CollisionLayer.BulletBreakable);
                PhysicsEngine.Instance.Raycast(position, direction, 100f, out RaycastResult result, true, true, thePointOfTheMaskIs);
                if (result != null && result.Contact != null)
                {
                    tk2dTiledSprite component = SpawnManager.SpawnVFX(linkVFXPrefab, false).GetComponent <tk2dTiledSprite>();
                    PostBeamRender(component);

                    Vector2 unitCenter  = position;
                    Vector2 unitCenter2 = result.Contact;
                    component.transform.position = unitCenter;
                    Vector2 vector = unitCenter2 - unitCenter;
                    float   num    = BraveMathCollege.Atan2Degrees(vector.normalized);
                    int     num2   = Mathf.RoundToInt(vector.magnitude / 0.0625f);
                    component.dimensions         = new Vector2((float)num2, component.dimensions.y);
                    component.transform.rotation = Quaternion.Euler(0f, 0f, num);
                    component.UpdateZDepth();

                    ETGMod.StartGlobalCoroutine(doTimerMagic(component.gameObject, wait));
                    OnBeamHit(result.Contact, projectile);
                }
                projectile.DieInAir();
            }
        }
Пример #3
0
    // This is used by other parts of code
    public static void RestoreBatchedSprite(GameObject go, tk2dBatchedSprite bs)
    {
        tk2dBaseSprite baseSprite = null;

        switch (bs.type)
        {
        case tk2dBatchedSprite.Type.EmptyGameObject:
        {
            break;
        }

        case tk2dBatchedSprite.Type.Sprite:
        {
            tk2dSprite s = tk2dBaseSprite.AddComponent <tk2dSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite = s;
            break;
        }

        case tk2dBatchedSprite.Type.TiledSprite:
        {
            tk2dTiledSprite s = tk2dBaseSprite.AddComponent <tk2dTiledSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite          = s;
            s.dimensions        = bs.Dimensions;
            s.anchor            = bs.anchor;
            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }

        case tk2dBatchedSprite.Type.SlicedSprite:
        {
            tk2dSlicedSprite s = tk2dBaseSprite.AddComponent <tk2dSlicedSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite   = s;
            s.dimensions = bs.Dimensions;
            s.anchor     = bs.anchor;

            s.BorderOnly = bs.CheckFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly);
            s.SetBorder(bs.SlicedSpriteBorderBottomLeft.x, bs.SlicedSpriteBorderBottomLeft.y, bs.SlicedSpriteBorderTopRight.x, bs.SlicedSpriteBorderTopRight.y);

            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }

        case tk2dBatchedSprite.Type.ClippedSprite:
        {
            tk2dClippedSprite s = tk2dBaseSprite.AddComponent <tk2dClippedSprite>(go, bs.spriteCollection, bs.spriteId);
            baseSprite       = s;
            s.clipBottomLeft = bs.ClippedSpriteRegionBottomLeft;
            s.clipTopRight   = bs.ClippedSpriteRegionTopRight;

            s.CreateBoxCollider = bs.CheckFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider);
            RestoreBoxColliderSettings(s.gameObject, bs.BoxColliderOffsetZ, bs.BoxColliderExtentZ);
            break;
        }
        }
        baseSprite.scale = bs.baseScale;
        baseSprite.color = bs.color;
    }
Пример #4
0
    public static void FillBatchedSprite(tk2dBatchedSprite bs, GameObject go)
    {
        tk2dSprite        srcSprite        = go.transform.GetComponent <tk2dSprite>();
        tk2dTiledSprite   srcTiledSprite   = go.transform.GetComponent <tk2dTiledSprite>();
        tk2dSlicedSprite  srcSlicedSprite  = go.transform.GetComponent <tk2dSlicedSprite>();
        tk2dClippedSprite srcClippedSprite = go.transform.GetComponent <tk2dClippedSprite>();

        tk2dBaseSprite baseSprite = go.GetComponent <tk2dBaseSprite>();

        bs.spriteId         = baseSprite.spriteId;
        bs.spriteCollection = baseSprite.Collection;
        bs.baseScale        = baseSprite.scale;
        bs.color            = baseSprite.color;
        bs.renderLayer      = baseSprite.SortingOrder;
#if !STRIP_PHYSICS_3D
        if (baseSprite.boxCollider != null)
        {
            bs.BoxColliderOffsetZ = baseSprite.boxCollider.center.z;
            bs.BoxColliderExtentZ = baseSprite.boxCollider.size.z * 0.5f;
        }
        else
#endif
        {
            bs.BoxColliderOffsetZ = 0.0f;
            bs.BoxColliderExtentZ = 1.0f;
        }

        if (srcSprite)
        {
            bs.type = tk2dBatchedSprite.Type.Sprite;
        }
        else if (srcTiledSprite)
        {
            bs.type       = tk2dBatchedSprite.Type.TiledSprite;
            bs.Dimensions = srcTiledSprite.dimensions;
            bs.anchor     = srcTiledSprite.anchor;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcTiledSprite.CreateBoxCollider);
        }
        else if (srcSlicedSprite)
        {
            bs.type       = tk2dBatchedSprite.Type.SlicedSprite;
            bs.Dimensions = srcSlicedSprite.dimensions;
            bs.anchor     = srcSlicedSprite.anchor;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcSlicedSprite.CreateBoxCollider);
            bs.SetFlag(tk2dBatchedSprite.Flags.SlicedSprite_BorderOnly, srcSlicedSprite.BorderOnly);
            bs.SlicedSpriteBorderBottomLeft = new Vector2(srcSlicedSprite.borderLeft, srcSlicedSprite.borderBottom);
            bs.SlicedSpriteBorderTopRight   = new Vector2(srcSlicedSprite.borderRight, srcSlicedSprite.borderTop);
        }
        else if (srcClippedSprite)
        {
            bs.type = tk2dBatchedSprite.Type.ClippedSprite;
            bs.ClippedSpriteRegionBottomLeft = srcClippedSprite.clipBottomLeft;
            bs.ClippedSpriteRegionTopRight   = srcClippedSprite.clipTopRight;
            bs.SetFlag(tk2dBatchedSprite.Flags.Sprite_CreateBoxCollider, srcClippedSprite.CreateBoxCollider);
        }
    }
Пример #5
0
 static void DoCreateSlicedSpriteObject()
 {
     tk2dSpriteGuiUtility.GetSpriteCollectionAndCreate((sprColl) => {
         GameObject go          = tk2dEditorUtility.CreateGameObjectInScene("Tiled Sprite");
         tk2dTiledSprite sprite = go.AddComponent <tk2dTiledSprite>();
         sprite.SetSprite(sprColl, sprColl.FirstValidDefinitionIndex);
         sprite.Build();
         Selection.activeGameObject = go;
         Undo.RegisterCreatedObjectUndo(go, "Create Tiled Sprite");
     });
 }
Пример #6
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;
        }
Пример #7
0
    public void DestroyWall()
    {
        tk2dTileMapDemoFollowCam cam = Camera.main.GetComponent <tk2dTileMapDemoFollowCam> ();
        CameraShake shake            = Camera.main.GetComponent <CameraShake> ();

        cameraControlId = cam.RequestControl(tk2dTileMapDemoFollowCam.CameraControlPriority.HIGH, transform);

        shake.Shake(delay, 0.4f, 0.001f);

        tk2dTiledSprite sprite = GetComponent <tk2dTiledSprite> ();

        HOTween.To(sprite, 5f, new TweenParms().Prop("dimensions", finalDimension).OnComplete(this.DestroyWallDone).Delay(delay));
    }
Пример #8
0
            private void UpdateLink(PlayerController target, tk2dTiledSprite m_extantLink)
            {
                Vector2 unitCenter  = base.specRigidbody.UnitCenter;
                Vector2 unitCenter2 = target.specRigidbody.HitboxPixelCollider.UnitCenter;

                m_extantLink.transform.position = unitCenter;
                Vector2 vector = unitCenter2 - unitCenter;
                float   num    = BraveMathCollege.Atan2Degrees(vector.normalized);
                int     num2   = Mathf.RoundToInt(vector.magnitude / 0.0625f);

                m_extantLink.dimensions         = new Vector2((float)num2, m_extantLink.dimensions.y);
                m_extantLink.transform.rotation = Quaternion.Euler(0f, 0f, num);
                m_extantLink.UpdateZDepth();
                this.ApplyLinearDamage(unitCenter, unitCenter2);
            }
Пример #9
0
        public static BasicBeamController GenerateBeamPrefab(this Projectile projectile, string spritePath)
        {
            projectile.gameObject.AddComponent <MeshRenderer>();
            projectile.gameObject.AddComponent <MeshFilter>();

            tk2dSprite      sprite      = projectile.GetComponent <tk2dSprite>();
            int             spriteID    = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection);
            tk2dTiledSprite tiledSprite = projectile.gameObject.AddComponent <tk2dTiledSprite>();

            tiledSprite.sprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID);
            UnityEngine.Object.Destroy(projectile.gameObject.GetComponent <tk2dSprite>());
            projectile.gameObject.AddComponent <tk2dSpriteAnimator>();
            BasicBeamController beamController = projectile.gameObject.AddComponent <BasicBeamController>();

            return(beamController);
        }
Пример #10
0
 private void Update()
 {
     if (m_projectile && electricTarget && this.extantLink == null)
     {
         tk2dTiledSprite component = SpawnManager.SpawnVFX(St4ke.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>();
         this.extantLink = component;
     }
     else if (m_projectile && electricTarget && this.extantLink != null)
     {
         UpdateLink(electricTarget, this.extantLink);
     }
     else if (extantLink != null)
     {
         SpawnManager.Despawn(extantLink.gameObject);
         extantLink = null;
     }
 }
Пример #11
0
        private void Update()
        {
            if (this.LinkVFXPrefab == null)
            {
                this.LinkVFXPrefab = FakePrefab.Clone(Game.Items["shock_rounds"].GetComponent <ComplexProjectileModifier>().ChainLightningVFX);
            }
            if (bolaProjectileA && bolaProjectileB && this.extantLink == null)
            {
                tk2dTiledSprite component = SpawnManager.SpawnVFX(this.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>();
                this.extantLink = component;
            }

            if (bolaProjectileA == null || bolaProjectileB == null)
            {
                Uncouple();
                m_projectile.DieInAir();
            }
        }
Пример #12
0
    static void DoCreateSlicedSpriteObject()
    {
        tk2dSpriteCollectionData sprColl = null;

        if (sprColl == null)
        {
            // try to inherit from other Sprites in scene
            tk2dSprite spr = GameObject.FindObjectOfType(typeof(tk2dSprite)) as tk2dSprite;
            if (spr)
            {
                sprColl = spr.Collection;
            }
        }

        if (sprColl == null)
        {
            tk2dSpriteCollectionIndex[] spriteCollections = tk2dEditorUtility.GetOrCreateIndex().GetSpriteCollectionIndex();
            foreach (var v in spriteCollections)
            {
                GameObject scgo = AssetDatabase.LoadAssetAtPath(AssetDatabase.GUIDToAssetPath(v.spriteCollectionDataGUID), typeof(GameObject)) as GameObject;
                var        sc   = scgo.GetComponent <tk2dSpriteCollectionData>();
                if (sc != null && sc.spriteDefinitions != null && sc.spriteDefinitions.Length > 0)
                {
                    sprColl = sc;
                    break;
                }
            }

            if (sprColl == null)
            {
                EditorUtility.DisplayDialog("Create Tiled Sprite", "Unable to create tiled sprite as no SpriteCollections have been found.", "Ok");
                return;
            }
        }

        GameObject      go     = tk2dEditorUtility.CreateGameObjectInScene("Tiled Sprite");
        tk2dTiledSprite sprite = go.AddComponent <tk2dTiledSprite>();

        sprite.SetSprite(sprColl, sprColl.FirstValidDefinitionIndex);
        sprite.Build();
        Selection.activeGameObject = go;
        Undo.RegisterCreatedObjectUndo(go, "Create Tiled Sprite");
    }
Пример #13
0
 public override void Update()
 {
     if (this.LinkVFXPrefab == null)
     {
         this.LinkVFXPrefab = FakePrefab.Clone(Game.Items["shock_rounds"].GetComponent <ComplexProjectileModifier>().ChainLightningVFX);
     }
     if (this.Owner && this.Owner.IsInCombat && this.extantLink == null)
     {
         tk2dTiledSprite component = SpawnManager.SpawnVFX(this.LinkVFXPrefab, false).GetComponent <tk2dTiledSprite>();
         this.extantLink = component;
     }
     else if (this.Owner && this.Owner.IsInCombat && this.extantLink != null)
     {
         UpdateLink(this.Owner, this.extantLink);
     }
     else if (extantLink != null)
     {
         SpawnManager.Despawn(extantLink.gameObject);
         extantLink = null;
     }
     base.Update();
 }
Пример #14
0
        public static GameObject RenderLaserSight(Vector2 position, float length, float width, float angle, bool alterColour = false, Color?colour = null)
        {
            GameObject gameObject = SpawnManager.SpawnVFX(laserSightPrefab, position, Quaternion.Euler(0, 0, angle));

            tk2dTiledSprite component2 = gameObject.GetComponent <tk2dTiledSprite>();
            float           newWidth   = 1f;

            if (width != -1)
            {
                newWidth = width;
            }
            component2.dimensions = new Vector2(length, newWidth);
            if (alterColour && colour != null)
            {
                component2.usesOverrideMaterial            = true;
                component2.sprite.renderer.material.shader = ShaderCache.Acquire("Brave/LitTk2dCustomFalloffTintableTiltedCutoutEmissive");
                component2.sprite.renderer.material.SetColor("_OverrideColor", (Color)colour);
                component2.sprite.renderer.material.SetColor("_EmissiveColor", (Color)colour);
                component2.sprite.renderer.material.SetFloat("_EmissivePower", 100);
                component2.sprite.renderer.material.SetFloat("_EmissiveColorPower", 1.55f);
            }
            return(gameObject);
        }
Пример #15
0
    void uLink_OnNetworkInstantiate(uLink.NetworkMessageInfo info)
    {
        spriteTorso = GetComponentInChildren <tk2dSprite>();
        statsScreen = (StatsScreen)FindObjectOfType(typeof(StatsScreen));
        string[] colors = new string[] { "Purple", "Blue", "Red", "Yellow", "Green" };
        heroColorName = colors [info.networkView.owner.id % colors.Length];
        SetName(info.networkView.owner.id, name);
        torsoAnim.Play(heroColorName + "_2");

        if (!info.networkView.isOwner)
        {
            return;
        }
//        this.networkView.RPC ("SetName", uLink.RPCMode.Others, info.networkView.owner.id, name);

        _cameraFollow = GameObject.Find("_Cam").GetComponent <CameraFollow> ();
        _cameraFollow.playerTransform = this.transform;
        healthBar   = GameObject.Find("HealthBarSliced").GetComponent <tk2dTiledSprite>();
        staminaBar  = GameObject.Find("StaminaBarSliced").GetComponent <tk2dTiledSprite>();
        statsScreen = (StatsScreen)FindObjectOfType(typeof(StatsScreen));
        spriteTorso = GetComponentInChildren <tk2dSprite>();
        UpdateHealth();
    }
        public void BuildPatch()
        {
            if (m_stripPrefab == null)
            {
                m_stripPrefab = (GameObject)BraveResources.Load("Global Prefabs/TallGrassStrip", ".prefab");
            }
            HashSet <IntVector2> hashSet = new HashSet <IntVector2>();

            for (int j = 0; j < cells.Count; j++)
            {
                IntVector2 intVector = cells[j];
                if (!hashSet.Contains(intVector))
                {
                    hashSet.Add(intVector);
                    int        num = 1;
                    var        targetIndexForPosition = GetTargetIndexForPosition(intVector);
                    IntVector2 intVector2             = intVector;
                    while (true)
                    {
                        intVector2 += IntVector2.Right;
                        if (hashSet.Contains(intVector2))
                        {
                            break;
                        }
                        if (!cells.Contains(intVector2))
                        {
                            break;
                        }
                        if (targetIndexForPosition != GetTargetIndexForPosition(intVector2))
                        {
                            break;
                        }
                        num++;
                        hashSet.Add(intVector2);
                    }
                    GameObject      grassObject = SpawnManager.SpawnVFX(m_stripPrefab, false);
                    tk2dTiledSprite tiledSprite = grassObject.GetComponent <tk2dTiledSprite>();
                    tiledSprite.SetSprite(GameManager.Instance.Dungeon.tileIndices.dungeonCollection, (int)targetIndexForPosition);
                    tiledSprite.dimensions         = new Vector2((16 * num), 16f);
                    grassObject.transform.position = new Vector3(intVector.x, intVector.y, intVector.y);
                    m_tiledSpritePool.Add(intVector, tiledSprite);
                    switch (targetIndexForPosition)
                    {
                    case IndexPosition.BOTTOM:
                        tiledSprite.HeightOffGround     = -2f;
                        tiledSprite.IsPerpendicular     = true;
                        tiledSprite.transform.position += new Vector3(0f, 0.6875f, 0f);
                        break;

                    case IndexPosition.TOP:
                        tiledSprite.IsPerpendicular = true;
                        break;

                    default:
                        tiledSprite.IsPerpendicular = false;
                        break;
                    }
                    tiledSprite.UpdateZDepth();
                }
            }
            if (!ExpandStaticReferenceManager.AllGrasses.Contains(this))
            {
                ExpandStaticReferenceManager.AllGrasses.Add(this);
            }
            InitializeParticleSystem();
        }
Пример #17
0
 void Awake()
 {
     meterSprite = GetComponent <tk2dTiledSprite>();
 }
Пример #18
0
 public virtual void PostBeamRender(tk2dTiledSprite beam)
 {
 }
Пример #19
0
        public static BasicBeamController GenerateBeamPrefab(this Projectile projectile, string spritePath, Vector2 colliderDimensions, Vector2 colliderOffsets, List <string> beamAnimationPaths = null, int beamFPS = -1, List <string> impactVFXAnimationPaths = null, int beamImpactFPS = -1, Vector2?impactVFXColliderDimensions = null, Vector2?impactVFXColliderOffsets = null, List <string> endVFXAnimationPaths = null, int beamEndFPS = -1, Vector2?endVFXColliderDimensions = null, Vector2?endVFXColliderOffsets = null, List <string> muzzleVFXAnimationPaths = null, int beamMuzzleFPS = -1, Vector2?muzzleVFXColliderDimensions = null, Vector2?muzzleVFXColliderOffsets = null)
        {
            try
            {
                float convertedColliderX = colliderDimensions.x / 16f;
                float convertedColliderY = colliderDimensions.y / 16f;
                float convertedOffsetX   = colliderOffsets.x / 16f;
                float convertedOffsetY   = colliderOffsets.y / 16f;

                int             spriteID    = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection);
                tk2dTiledSprite tiledSprite = projectile.gameObject.GetOrAddComponent <tk2dTiledSprite>();



                tiledSprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID);
                tk2dSpriteDefinition def = tiledSprite.GetCurrentSpriteDef();
                def.colliderVertices = new Vector3[] {
                    new Vector3(convertedOffsetX, convertedOffsetY, 0f),
                    new Vector3(convertedColliderX, convertedColliderY, 0f)
                };

                def.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft);

                //tiledSprite.anchor = tk2dBaseSprite.Anchor.MiddleCenter;
                tk2dSpriteAnimator  animator  = projectile.gameObject.GetOrAddComponent <tk2dSpriteAnimator>();
                tk2dSpriteAnimation animation = projectile.gameObject.GetOrAddComponent <tk2dSpriteAnimation>();
                animation.clips  = new tk2dSpriteAnimationClip[0];
                animator.Library = animation;
                UnityEngine.Object.Destroy(projectile.GetComponentInChildren <tk2dSprite>());
                BasicBeamController beamController = projectile.gameObject.GetOrAddComponent <BasicBeamController>();

                //---------------- Sets up the animation for the main part of the beam
                if (beamAnimationPaths != null)
                {
                    tk2dSpriteAnimationClip clip = new tk2dSpriteAnimationClip()
                    {
                        name = "beam_idle", frames = new tk2dSpriteAnimationFrame[0], fps = beamFPS
                    };
                    List <string> spritePaths = beamAnimationPaths;

                    List <tk2dSpriteAnimationFrame> frames = new List <tk2dSpriteAnimationFrame>();
                    foreach (string path in spritePaths)
                    {
                        tk2dSpriteCollectionData collection = ETGMod.Databases.Items.ProjectileCollection;
                        int frameSpriteId             = SpriteBuilder.AddSpriteToCollection(path, collection);
                        tk2dSpriteDefinition frameDef = collection.spriteDefinitions[frameSpriteId];
                        frameDef.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft);
                        frameDef.colliderVertices = def.colliderVertices;
                        frames.Add(new tk2dSpriteAnimationFrame {
                            spriteId = frameSpriteId, spriteCollection = collection
                        });
                    }
                    clip.frames     = frames.ToArray();
                    animation.clips = animation.clips.Concat(new tk2dSpriteAnimationClip[] { clip }).ToArray();
                    beamController.beamAnimation = "beam_idle";
                }

                //------------- Sets up the animation for the part of the beam that touches the wall
                if (endVFXAnimationPaths != null && endVFXColliderDimensions != null && endVFXColliderOffsets != null)
                {
                    SetupBeamPart(animation, endVFXAnimationPaths, "beam_end", beamEndFPS, (Vector2)endVFXColliderDimensions, (Vector2)endVFXColliderOffsets);
                    beamController.beamEndAnimation = "beam_end";
                }
                else
                {
                    SetupBeamPart(animation, beamAnimationPaths, "beam_end", beamFPS, null, null, def.colliderVertices);
                    beamController.beamEndAnimation = "beam_end";
                }

                //---------------Sets up the animaton for the VFX that plays over top of the end of the beam where it hits stuff
                if (impactVFXAnimationPaths != null && impactVFXColliderDimensions != null && impactVFXColliderOffsets != null)
                {
                    SetupBeamPart(animation, impactVFXAnimationPaths, "beam_impact", beamImpactFPS, (Vector2)impactVFXColliderDimensions, (Vector2)impactVFXColliderOffsets);
                    beamController.impactAnimation = "beam_impact";
                }

                //--------------Sets up the animation for the very start of the beam
                if (muzzleVFXAnimationPaths != null && muzzleVFXColliderDimensions != null && muzzleVFXColliderOffsets != null)
                {
                    SetupBeamPart(animation, muzzleVFXAnimationPaths, "beam_start", beamMuzzleFPS, (Vector2)muzzleVFXColliderDimensions, (Vector2)muzzleVFXColliderOffsets);
                    beamController.beamStartAnimation = "beam_start";
                }
                else
                {
                    SetupBeamPart(animation, beamAnimationPaths, "beam_start", beamFPS, null, null, def.colliderVertices);
                    beamController.beamStartAnimation = "beam_start";
                }

                return(beamController);
            }
            catch (Exception e)
            {
                ETGModConsole.Log(e.ToString());
                return(null);
            }
        }
Пример #20
0
 private void Awake()
 {
     mySprite = GetComponent <tk2dTiledSprite>();
 }
Пример #21
0
        void Start()
        {
            ballCollider = (BoxCollider)GetComponent<BoxCollider>();
            sprite = (tk2dTiledSprite)GetComponent<tk2dTiledSprite>();

            SetColour(transform.parent.GetComponent<Line>().Colour);

            collidingObjects = new HashSet<int>();
        }
Пример #22
0
	// Update is called once per frame
	void Update () 
	{
		#if UNITY_IPHONE
		int i = 0;
		    
		if ( Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
		{
			this.mousepos = Camera.main.ScreenToWorldPoint(Input.GetTouch(i).position);
			//this.mousepos = Input.GetTouch(i).position;

			mousepos = new Vector3(mousepos.x, mousepos.y, 0);

			if (!isClike)
			{
				 obj = Instantiate(this.pointer, mousepos, Quaternion.identity) as GameObject;
				text.text = i.ToString() +"@" + this.mousepos.ToString();
				 isClike = true;
			}
		}

		//if (Input.GetMouseButtonUp(0))
		if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Ended)
		{
		    isClike = false;
		}
		#endif

		#if UNITY_STANDALONE_WIN
		////////////////////////////////////////////////mouse//////////////////////////////////////
//		if(Input.GetMouseButtonDown(0))
//		{
//			rock.collider.bounds.
//			Debug.Log("down");
//		}
		if (Input.GetMouseButtonDown(0))
		{
			ray = Camera.main.ScreenPointToRay(Input.mousePosition);
			if (Physics.Raycast(ray, out hit))
			{
				GameObject obj;
//				obj = hit.collider.gameObject.transform.parent.gameObject;
//				if(obj == null)
//				{
					obj = hit.collider.gameObject;
				Debug.Log(tileMap.data.tileSize);
				//}

				rockObj = obj.GetComponent<Rock>(); //取不到值?????
				para = obj.GetComponent<Parabola>();
				Debug.Log(obj.name);
				Debug.Log(hit.collider.gameObject.name);
				Debug.Log(rockObj);
				//if(rockObj != null)
				if(obj.tag == "ground")
				{
					tSprite = obj.GetComponent<tk2dTiledSprite>();
					tSprite.color = Color.yellow;

				}
				//obj.gameObject.
				if(rockObj != null )
				{
					rockObj.State = Rock.RockStateEnum.act4;
					//para.active = false;
					Debug.Log(hit.collider.gameObject.name);
				}
			}
//			Ray ray;
//			RaycastHit hit;
//
//				if (Input.GetMouseButton(0))
//				{
//					ray = Camera.main.ScreenPointToRay(Input.mousePosition);
//					if (Physics.Raycast(ray, out hit))
//						Debug.Log(hit.collider.gameObject.name);
//				}


		}

        if (Input.GetMouseButton(0))
        {
            this.mousepos = Camera.main.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, Input.mousePosition.z));

            mousepos = new Vector3(mousepos.x, mousepos.y, 0);
            if (!isClike)
            {
                obj = Instantiate(this.pointer, mousepos, Quaternion.identity) as GameObject;
                
                isClike = true;
            }

        }
        if (Input.GetMouseButtonUp(0))
        {
            isClike = false;
        }
		////////////////////////////////////////////////mouse//////////////////////////////////////
		#endif
		

		
	}
Пример #23
0
	// Use this for initialization
	void Start () 
	{

		tSprite = gameObject.GetComponent<tk2dTiledSprite>();
	}
Пример #24
0
 void Start()
 {
     sprite = GetComponent<tk2dTiledSprite>();
 }
Пример #25
0
    public new void OnSceneGUI()
    {
        if (tk2dPreferences.inst.enableSpriteHandles == false || !tk2dEditorUtility.IsEditable(target))
        {
            return;
        }

        tk2dTiledSprite spr = (tk2dTiledSprite)target;

        Transform t      = spr.transform;
        var       sprite = spr.CurrentSprite;

        if (sprite == null)
        {
            return;
        }

        Vector2 totalMeshSize = new Vector2(spr.dimensions.x * sprite.texelSize.x * spr.scale.x, spr.dimensions.y * sprite.texelSize.y * spr.scale.y);
        Vector2 anchorOffset  = tk2dSceneHelper.GetAnchorOffset(totalMeshSize, spr.anchor);

        {
            Vector3 v     = new Vector3(anchorOffset.x, anchorOffset.y, 0);
            Vector3 d     = totalMeshSize;
            Rect    rect0 = new Rect(v.x, v.y, d.x, d.y);

            Handles.color = new Color(1, 1, 1, 0.5f);
            tk2dSceneHelper.DrawRect(rect0, t);

            Handles.BeginGUI();
            // Resize handles
            if (tk2dSceneHelper.RectControlsToggle())
            {
                EditorGUI.BeginChangeCheck();
                Rect resizeRect = tk2dSceneHelper.RectControl(123192, rect0, t);
                if (EditorGUI.EndChangeCheck())
                {
                    tk2dUndo.RecordObjects(new Object[] { t, spr }, "Resize");
                    spr.ReshapeBounds(new Vector3(resizeRect.xMin, resizeRect.yMin) - new Vector3(rect0.xMin, rect0.yMin),
                                      new Vector3(resizeRect.xMax, resizeRect.yMax) - new Vector3(rect0.xMax, rect0.yMax));
                    tk2dUtil.SetDirty(spr);
                }
            }

            // Rotate handles
            if (!tk2dSceneHelper.RectControlsToggle())
            {
                EditorGUI.BeginChangeCheck();
                List <int> hidePts = tk2dSceneHelper.getAnchorHidePtList(spr.anchor, rect0, t);
                float      theta   = tk2dSceneHelper.RectRotateControl(456384, rect0, t, hidePts);
                if (EditorGUI.EndChangeCheck())
                {
                    if (Mathf.Abs(theta) > Mathf.Epsilon)
                    {
                        tk2dUndo.RecordObject(t, "Rotate");
                        t.Rotate(t.forward, theta, Space.World);
                    }
                }
            }

            Handles.EndGUI();

            // Sprite selecting
            tk2dSceneHelper.HandleSelectSprites();

            // Sprite moving (translation)
            tk2dSceneHelper.HandleMoveSprites(t, new Rect(v.x, v.y, d.x, d.y));
        }

        if (GUI.changed)
        {
            tk2dUtil.SetDirty(target);
        }
    }
Пример #26
0
    public override void OnInspectorGUI()
    {
        tk2dTiledSprite sprite = (tk2dTiledSprite)target;

        base.OnInspectorGUI();

        if (sprite.Collection == null)
        {
            return;
        }


        EditorGUILayout.BeginVertical();

        var spriteData = sprite.GetCurrentSpriteDef();

        // need raw extents (excluding scale)
        Vector3 extents = spriteData.boundsData[1];

        bool newCreateBoxCollider = EditorGUILayout.Toggle("Create Box Collider", sprite.CreateBoxCollider);

        if (newCreateBoxCollider != sprite.CreateBoxCollider)
        {
            Undo.RegisterUndo(targetTiledSprites, "Create Box Collider");
            sprite.CreateBoxCollider = newCreateBoxCollider;
        }

        // if either of these are zero, the division to rescale to pixels will result in a
        // div0, so display the data in fractions to avoid this situation
        bool editBorderInFractions = true;

        if (spriteData.texelSize.x != 0.0f && spriteData.texelSize.y != 0.0f && extents.x != 0.0f && extents.y != 0.0f)
        {
            editBorderInFractions = false;
        }

        if (!editBorderInFractions)
        {
            Vector2 newDimensions = EditorGUILayout.Vector2Field("Dimensions (Pixel Units)", sprite.dimensions);
            if (newDimensions != sprite.dimensions)
            {
                Undo.RegisterUndo(targetTiledSprites, "Tiled Sprite Dimensions");
                foreach (tk2dTiledSprite spr in targetTiledSprites)
                {
                    spr.dimensions = newDimensions;
                }
            }

            tk2dTiledSprite.Anchor newAnchor = (tk2dTiledSprite.Anchor)EditorGUILayout.EnumPopup("Anchor", sprite.anchor);
            if (newAnchor != sprite.anchor)
            {
                Undo.RegisterUndo(targetTiledSprites, "Tiled Sprite Anchor");
                foreach (tk2dTiledSprite spr in targetTiledSprites)
                {
                    spr.anchor = newAnchor;
                }
            }
        }
        else
        {
            GUILayout.Label("Border (Displayed as Fraction).\nSprite Collection needs to be rebuilt.", "textarea");
        }

        Mesh mesh = sprite.GetComponent <MeshFilter>().sharedMesh;

        if (mesh != null)
        {
            GUILayout.Label(string.Format("Triangles: {0}", mesh.triangles.Length / 3));
        }

        // One of the border valus has changed, so simply rebuild mesh data here
        if (GUI.changed)
        {
            foreach (tk2dTiledSprite spr in targetTiledSprites)
            {
                spr.Build();
                EditorUtility.SetDirty(spr);
            }
        }

        EditorGUILayout.EndVertical();
    }
Пример #27
0
 void Start()
 {
     sprite = GetComponent <tk2dTiledSprite>();
     max    = sprite.dimensions;
 }
Пример #28
0
    public new void OnSceneGUI()
    {
        if (tk2dPreferences.inst.enableSpriteHandles == false)
        {
            return;
        }

        tk2dTiledSprite spr = (tk2dTiledSprite)target;

        Transform t      = spr.transform;
        var       sprite = spr.CurrentSprite;

        if (sprite == null)
        {
            return;
        }

        Vector2 totalMeshSize = new Vector2(spr.dimensions.x * sprite.texelSize.x * spr.scale.x, spr.dimensions.y * sprite.texelSize.y * spr.scale.y);
        Vector2 anchorOffset  = tk2dSceneHelper.GetAnchorOffset(totalMeshSize, spr.anchor);

        {
            Vector3 v     = new Vector3(anchorOffset.x, anchorOffset.y, 0);
            Vector3 d     = totalMeshSize;
            Rect    rect0 = new Rect(v.x, v.y, d.x, d.y);

            Handles.color = new Color(1, 1, 1, 0.5f);
            tk2dSceneHelper.DrawRect(rect0, t);

            Handles.BeginGUI();
            // Resize handles
            if (tk2dSceneHelper.RectControlsToggle())
            {
                EditorGUI.BeginChangeCheck();
                Rect resizeRect = tk2dSceneHelper.RectControl(123192, rect0, t);
                if (EditorGUI.EndChangeCheck())
                {
                    Vector2 dim = new Vector2(resizeRect.width / (sprite.texelSize.x * spr.scale.x), resizeRect.height / (sprite.texelSize.y * spr.scale.y));
                    dim.x = Mathf.Abs(dim.x);
                    dim.y = Mathf.Abs(dim.y);
                    Undo.RegisterUndo(new Object[] { t, spr }, "Resize");

                    if (dim != spr.dimensions)
                    {
                        spr.dimensions = dim;
                    }

                    Vector2 newAnchorOffset = tk2dSceneHelper.GetAnchorOffset(new Vector2(resizeRect.width, resizeRect.height), spr.anchor);
                    Vector3 newLocalPos     = new Vector3(resizeRect.xMin - newAnchorOffset.x, resizeRect.yMin - newAnchorOffset.y, 0.0f);
                    Vector3 newPosition     = t.TransformPoint(newLocalPos);
                    if (newPosition != t.position)
                    {
                        t.position = newPosition;
                    }
                }
            }

            // Rotate handles
            if (!tk2dSceneHelper.RectControlsToggle())
            {
                EditorGUI.BeginChangeCheck();
                List <int> hidePts = tk2dSceneHelper.getAnchorHidePtList(spr.anchor, rect0, t);
                float      theta   = tk2dSceneHelper.RectRotateControl(456384, rect0, t, hidePts);
                if (EditorGUI.EndChangeCheck())
                {
                    Undo.RegisterUndo(t, "Rotate");
                    if (Mathf.Abs(theta) > Mathf.Epsilon)
                    {
                        t.Rotate(t.forward, theta);
                    }
                }
            }

            Handles.EndGUI();

            // Sprite selecting
            tk2dSceneHelper.HandleSelectSprites();

            // Sprite moving (translation)
            tk2dSceneHelper.HandleMoveSprites(t, new Rect(v.x, v.y, d.x, d.y));
        }
    }
Пример #29
0
        /// <summary>
        /// Adds a tiled trail to the Projectile
        /// </summary>
        /// <param name="timeTillAnimStart">How long after spawning until the trail will begin to play it's animation, if it has one.</param>
        public static void AddTrailToProjectile(this Projectile target, string spritePath, Vector2 colliderDimensions, Vector2 colliderOffsets, List <string> animPaths = null, int animFPS = -1, List <string> startAnimPaths = null, int startAnimFPS = -1, float timeTillAnimStart = -1, float cascadeTimer = -1, float softMaxLength = -1, bool destroyOnEmpty = false)
        {
            try
            {
                GameObject newTrailObject = new GameObject();
                newTrailObject.InstantiateAndFakeprefab();
                newTrailObject.transform.parent = target.transform;

                float convertedColliderX = colliderDimensions.x / 16f;
                float convertedColliderY = colliderDimensions.y / 16f;
                float convertedOffsetX   = colliderOffsets.x / 16f;
                float convertedOffsetY   = colliderOffsets.y / 16f;

                int             spriteID    = SpriteBuilder.AddSpriteToCollection(spritePath, ETGMod.Databases.Items.ProjectileCollection);
                tk2dTiledSprite tiledSprite = newTrailObject.GetOrAddComponent <tk2dTiledSprite>();

                tiledSprite.SetSprite(ETGMod.Databases.Items.ProjectileCollection, spriteID);
                tk2dSpriteDefinition def = tiledSprite.GetCurrentSpriteDef();
                def.colliderVertices = new Vector3[] {
                    new Vector3(convertedOffsetX, convertedOffsetY, 0f),
                    new Vector3(convertedColliderX, convertedColliderY, 0f)
                };

                def.ConstructOffsetsFromAnchor(tk2dBaseSprite.Anchor.MiddleLeft);

                tk2dSpriteAnimator  animator  = newTrailObject.GetOrAddComponent <tk2dSpriteAnimator>();
                tk2dSpriteAnimation animation = newTrailObject.GetOrAddComponent <tk2dSpriteAnimation>();
                animation.clips  = new tk2dSpriteAnimationClip[0];
                animator.Library = animation;

                TrailController trail = newTrailObject.AddComponent <TrailController>();

                //---------------- Sets up the animation for the main part of the trail
                if (animPaths != null)
                {
                    BeamToolbox.SetupBeamPart(animation, animPaths, "trail_mid", animFPS, null, null, def.colliderVertices);
                    trail.animation     = "trail_mid";
                    trail.usesAnimation = true;
                }
                else
                {
                    trail.usesAnimation = false;
                }

                if (startAnimPaths != null)
                {
                    BeamToolbox.SetupBeamPart(animation, startAnimPaths, "trail_start", startAnimFPS, null, null, def.colliderVertices);
                    trail.startAnimation     = "trail_start";
                    trail.usesStartAnimation = true;
                }
                else
                {
                    trail.usesStartAnimation = false;
                }

                //Trail Variables
                if (softMaxLength > 0)
                {
                    trail.usesSoftMaxLength = true; trail.softMaxLength = softMaxLength;
                }
                if (cascadeTimer > 0)
                {
                    trail.usesCascadeTimer = true; trail.cascadeTimer = cascadeTimer;
                }
                if (timeTillAnimStart > 0)
                {
                    trail.usesGlobalTimer = true; trail.globalTimer = timeTillAnimStart;
                }
                trail.destroyOnEmpty = destroyOnEmpty;
            }
            catch (Exception e)
            {
                ETGModConsole.Log(e.ToString());
            }
        }