コード例 #1
0
        private void ProcessSlime(object o)
        {
            var script      = o as SAttackerJolt;
            var slimeSprite = CharSpriteLoader.Instance.GetFatalitySprite(SLIME);
            var slime       = new GameObject();
            var renderer    = slime.AddComponent <SpriteRenderer>();

            renderer.sprite           = slimeSprite;
            renderer.sortingLayerName = SortingLayers.PARTICLES;
            var position = script.Action.Data.Target.Handle.transform.position;

            position.y += 10;
            slime.transform.position = position;
            slime.transform.SetParent(script.Action.Data.Target.Handle.transform);
            slime.transform.localScale = new Vector3(3, 3, 3);
            var move = slime.AddComponent <SRaycastMoveThenDelete>();
            var data = new SRaycastMoveData();

            data.Handle = slime;
            data.Speed  = 3.5f;
            data.Target = script.Action.Data.Target.Handle.transform.position;
            move.AddCallback(this.ProcessEnd);
            move.AddObjectToList(script);
            move.Init(data);
        }
コード例 #2
0
        private GameObject GetDeleteRay(MAction a, Vector3 tgt, Callback callback, GameObject bullet, float speed)
        {
            var data = new SRaycastMoveData();

            data.Epsilon = CombatGUIParams.DEFAULT_EPSILON;
            data.Handle  = bullet;
            data.Speed   = speed;
            data.Target  = tgt;
            var script = bullet.AddComponent <SBulletThenDelete>();

            script.Action = a;
            script.Init(data);
            script.AddCallback(callback);
            return(bullet);
        }
コード例 #3
0
        private GameObject GetDeleteBullet(MHit hit, Callback callback, GameObject bullet, float speed)
        {
            var data = new SRaycastMoveData();

            data.Epsilon = CombatGUIParams.DEFAULT_EPSILON;
            data.Handle  = bullet;
            data.Speed   = speed;
            data.Target  = hit.Data.Target.Handle.transform.position;
            var script = bullet.AddComponent <SBulletThenDelete>();

            script.Action = hit.Data.Action;
            script.Init(data);
            script.AddCallback(callback);
            return(bullet);
        }
コード例 #4
0
        public void Init(GameObject source, CChar character)
        {
            this._handle = source;
            var sourceTile = character.Tile;
            var landTile   = character.Tile.GetRandomNearbyTile(5);
            var pos        = RandomPositionOffset.RandomOffset(landTile.Center, CombatGUIParams.DEFAULT_OFFSET);
            var data       = new SRaycastMoveData();

            data.Epsilon = FatalityParams.DEFAULT_EPSILON;
            data.Handle  = source;
            data.Speed   = FatalityParams.FIGHTING_SPEED;
            data.Target  = pos;
            var move = source.AddComponent <SRaycastMove>();

            RotateTranslateUtil.Instance.RandomRotate(source);
            move.AddCallback(this.SetDeadLayer);
            move.Init(data);
            source.transform.SetParent(landTile.Handle.transform);
        }
コード例 #5
0
        private void InitCharge(MAction a)
        {
            VCharUtil.Instance.AssignPlusLayer(a.Data.Source);
            var bob = a.Data.Source.GameHandle.GetComponent <SBob>();

            if (bob != null)
            {
                GameObject.Destroy(bob);
            }
            var data = new SRaycastMoveData();

            data.Epsilon = 0.15f;
            data.Handle  = a.Data.Source.GameHandle;
            data.Speed   = 3f;
            data.Target  = a.Data.Target.Handle.transform.position;
            var script = a.Data.Source.GameHandle.AddComponent <SRaycastMove>();

            script.Init(data);
            script.AddObjectToList(a);
            script.AddCallback(this.ChargeDone);
        }
コード例 #6
0
ファイル: SlashFatality.cs プロジェクト: lawerencem/Everpixel
        private void ProcessHead(object o)
        {
            foreach (var hit in this._data.FatalHits)
            {
                if (hit.Data.Target.Current != null &&
                    hit.Data.Target.Current.GetType().Equals(typeof(CChar)))
                {
                    var tgt = this._data.Target.Current as CChar;
                    if (tgt.Proxy.Type == ECharType.Humanoid)
                    {
                        VCharUtil.Instance.ProcessDeadChar(tgt);

                        var body = tgt.SubComponents[SortingLayers.CHAR_MAIN];
                        var data = new EvSplatterData();
                        data.DmgPercent = 1;
                        data.Fatality   = true;
                        data.Target     = body;
                        new EvSplatter(data);

                        var head    = tgt.SubComponents[SortingLayers.CHAR_HEAD];
                        var tgtTile = tgt.Tile;
                        var tgtPos  = RandomPositionOffset.RandomOffset(
                            tgtTile.Handle.transform.position,
                            FatalityParams.SLASH_HEAD_OFFSET);
                        head.transform.SetParent(tgtTile.Handle.transform);

                        var spinData = new SRotationData();
                        spinData.Speed  = (float)(FatalityParams.SLASH_ROTATION_SPEED * RNG.Instance.NextDouble());
                        spinData.Target = head;
                        var spinRight = RNG.Instance.RandomNegOrPos();
                        if (spinRight > 0)
                        {
                            spinData.SpinRight = true;
                        }
                        var spin = head.AddComponent <SRotation>();
                        spin.Init(spinData);

                        var raycastData = new SRaycastMoveData();
                        raycastData.Epsilon = FatalityParams.DEFAULT_EPSILON;
                        raycastData.Handle  = head;
                        raycastData.Speed   = FatalityParams.SLASH_RAYCAST_SPEED;
                        raycastData.Target  = tgtPos;
                        var raycast = head.AddComponent <SRaycastMove>();
                        this.AttachBlood(head, tgt.GameHandle);

                        raycast.AddCallback(this.AddBloodPool);
                        raycast.AddCallback(spin.Done);

                        var callbackDelay = head.AddComponent <SDelayCallback>();
                        callbackDelay.AddCallback(this.CallbackHandler);
                        callbackDelay.AddCallback(hit.CallbackHandler);
                        callbackDelay.Init(FatalityParams.DEFAULT_DUR);

                        raycast.Init(raycastData);
                    }
                    else
                    {
                        VHitController.Instance.ProcessDefenderHit(hit);
                    }
                }
            }
        }