Пример #1
0
    private static MoveTowards MoveCardToDeck(Card c, Player p)
    {
        p.DiscardPile.Remove(c);
        p.Deck.Add(c);

        Transform deckMarker   = GetDeckMarker(p);
        float     heightOffset = deckMarker.transform.position.y +
                                 Consts.DrawCardStartHeight + (Mathf.Lerp(-1.0f, 1.0f, RNG.value) *
                                                               Consts.DrawCardStartHeightVariance);

        CardComponent cmp = c.Owner;
        MoveTowards   mt  = cmp.gameObject.AddComponent <MoveTowards>();

        mt.Speed = Consts.DrawCardMoveSpeed;

        //First move upwards.
        mt.SetTarget(cmp.MyTr.position + new Vector3(0.0f, heightOffset, 0.0f));
        //Then move to the deck position.
        mt.OnMovementFinished += mt2 =>
        {
            mt2.SetTarget(deckMarker.position + new Vector3(0.0f, p.Deck.IndexOf(c) * Consts.DeckCardSeparation, 0.0f));

            mt2.OnMovementFinished += mt3 => GameObject.Destroy(mt3);

            cmp.IsFaceDown = true;
        };

        return(mt);
    }
Пример #2
0
 // Use this for initialization
 void Start()
 {
     FindObjectOfType <SoundManager>().PlaySound("Player_Charge");
     _moveTowards        = GetComponent <MoveTowards>();
     _moveTowards.Target = Target;
     FindObjectOfType <CameraController>().player = gameObject;
 }
    /// <summary>
    /// Degrad emitters need to know about partition changes so they can stop
    /// spawning particles when changing to a gated room.
    /// </summary>
    private void OnPartitionChanging(object sender, PartitionChangedArgs args)
    {
        bool bGated = false;

        if (GatingManager.Instance)
        {
            // find out if the room being changed to has a gate or not
            bGated = GatingManager.Instance.HasActiveGate(args.newPartition);
        }

        if (bGated)
        {
            // if there is a gate in this room, turn off the spawning of skulls
            Disable();

            // also, all spawned objects need to get to their target asap
            for (int i = 0; i < listSpawned.Count; ++i)
            {
                GameObject  go         = listSpawned[i];
                MoveTowards moveScript = go.GetComponent <MoveTowards>();
                moveScript.FlashToTarget();
            }
        }
        else
        {
            // if there is no gate in this room, we can spawn skulls again (but only if the tut is through)
            if (!isActive)
            {
                Enable();
            }
        }
    }
Пример #4
0
        private string ExecuteTurnAction(MoveTowards moveTowards)
        {
            if (moveTowards.EnergyCost > EP)
            {
                return($"{Name} does not have enough energy to move.");
            }

            var nearestPlaces = GetNearestPlaces();

            if (nearestPlaces.Any())
            {
                var newPlace = nearestPlaces
                               .OrderBy(p => p.DistanceTo(moveTowards.Place))
                               .First();
                var direction = GetDirectionTo(newPlace);

                if (direction != Direction.None)
                {
                    DrainEnergy(moveTowards.EnergyCost);
                    PositionTo(newPlace.X, newPlace.Y);
                    return($"{Name} moves {direction}.");
                }
                return($"{Name} stays at current position.");
            }
            return($"{Name} cannot move in any direction.");
        }
Пример #5
0
        public VideoProcessor()
        {
            background = null;

            pixelateFilter           = new Pixellate();
            pixelateFilter.PixelSize = 10;

            differenceFilter = new Difference();
            thresholdFilter  = new Threshold(15);
            grayscaleFilter  = new Grayscale(0.2125, 0.7154, 0.0721);
            erosionFilter    = new Erosion();

            moveTowardsFilter = new MoveTowards();

            filters1 = new FiltersSequence();
            filters1.Add(pixelateFilter);
            filters1.Add(grayscaleFilter);

            filters2 = new FiltersSequence();

            filters2.Add(differenceFilter);
            filters2.Add(thresholdFilter);
            filters2.Add(erosionFilter);

            rat1 = new Tracker(640 / 2, 480 / 2, Color.Red);

            rat2 = new Tracker(400, 300, Color.Green);

            counter = 0;
        }
Пример #6
0
    public static void Stay()
    {
        MoveTowards move = FindGameObjectWithTag("Steersman").GetComponent <MoveTowards>();

        move.target  = null;
        move.enabled = false;
        move.GetComponent <Rigidbody>().isKinematic = true;
    }
Пример #7
0
    public static void Follow()
    {
        MoveTowards move = GameObject.FindGameObjectWithTag("Steersman").GetComponent <MoveTowards>();

        move.target  = GameManager.GetPlayerComponent <STransform>();
        move.enabled = true;
        move.GetComponent <Rigidbody>().isKinematic = false;
    }
Пример #8
0
    public static IEnumerator DiscardCard(CardComponent cmp, int handIndex, float dir)
    {
        InputController.Instance.DisableAllGestures = true;

        //Update the card lists.
        cmp.IsSelected = false;
        List <Card> hand = FSM.Current.Hand;
        Card        c    = cmp.MyCard;

        UnityEngine.Assertions.Assert.IsTrue(c == hand[handIndex]);
        FSM.Current.DiscardPile.Add(c);
        hand.RemoveAt(handIndex);

        //Push the card out of the way.

        PFI.PlayerLookTarget = (dir < 0.0f ? PFI.LookTarget_DiscardLeft : PFI.LookTarget_DiscardRight);

        Rigidbody rgd = cmp.gameObject.GetComponent <Rigidbody>();

        rgd.isKinematic = false;

        yield return(null);

        Vector3 pushDir = PFI.MainCam.right;

        rgd.velocity = pushDir * Consts.DiscardForce * dir * 0.5f;

        yield return(new WaitForSeconds(2.0f));

        PFI.PlayerLookTarget = PFI.LookTarget_MyTable;
        rgd.isKinematic      = true;

        yield return(new WaitForSeconds(1.0f));

        //Move all later cards in the hand down by one.
        for (int i = handIndex; i < hand.Count; ++i)
        {
            MoveTowards mt = hand[i].Owner.gameObject.AddComponent <MoveTowards>();
            mt.Speed = 1.0f;
            mt.SetTarget(GetHandMarkers(FSM.Current)[i].position);
            mt.OnMovementFinished += mt2 =>
            {
                GameObject.Destroy(mt2);
            };
        }

        while (hand.Any(c2 => c2.Owner.GetComponent <MoveTowards>() != null))
        {
            yield return(null);
        }

        InputController.Instance.DisableAllGestures = false;

        for (int i = handIndex; i < Consts.MaxHand; ++i)
        {
            PFI.HandButtons[i].Reset(i >= hand.Count ? null : hand[i].Owner);
        }
    }
Пример #9
0
 private void Awake()
 {
     if (GetComponent <Jump>())
     {
         _jump = GetComponent <Jump>();
     }
     if (GetComponent <MoveTowards>())
     {
         _moveTowards = GetComponent <MoveTowards>();
     }
 }
        // Constructor
        public MoveTowardsFilterForm(Bitmap overlay)
        {
            InitializeComponent( );

            // create filter
            filter = new MoveTowards(overlay);
            // set percent value on track bar
            stepSizeBar.Value = (int)(filter.StepSize);
            // set filter for preview window
            filterPreview.Filter = filter;
        }
Пример #11
0
    private void Start()
    {
        var idle        = new Idle(this);
        var wander      = new Wander(this);
        var moveTowards = new MoveTowards(this, navMeshAgent, target);

        //Setup transitions
        stateMachine.AddTransition(idle, wander, InputSpaceBar());
        stateMachine.AddTransition(wander, moveTowards, HasTarget());

        stateMachine.SetState(idle);
    }
Пример #12
0
        public mCompositeMove(Bitmap UnderlayBitmap, Bitmap OverlayBitmap, int StepSize)
        {
            Step = StepSize;

            BitmapUnder = new mSetFormat(UnderlayBitmap, mFilter.BitmapTypes.Rgb24bpp).ModifiedBitmap;
            BitmapOver  = new mSetFormat(OverlayBitmap, mFilter.BitmapTypes.Rgb24bpp).ModifiedBitmap;

            ModifiedBitmap = BitmapUnder;

            Effect = new MoveTowards(BitmapOver, Step);

            ModifiedBitmap = Effect.Apply(BitmapUnder);
        }
Пример #13
0
    public override void Init(NPC n)
    {
        Vector3 vector = this.caster.Self.GO.transform.position;
        Vector3 pos    = new Vector3(vector.x, vector.y + .5f, vector.z);

        obj = GameObject.Instantiate(Resources.Load(startVisual), pos, Quaternion.identity) as GameObject;
        MoveTowards script = obj.AddComponent <MoveTowards>();

        script.initialize(n.GO, speed, new Action <Vector3>((Vector3 loc) =>
        {
            GameObject go = GameObject.Instantiate(Resources.Load(finishVisual), loc, Quaternion.identity) as GameObject;
            go.AddComponent <TimedDestruction>().init(.5f);
        }));
    }
Пример #14
0
    public void InitTarget()
    {
        // Get components
        moveTowards   = GetComponent <MoveTowards> ();
        rotateTowards = GetComponent <RotateTowards> ();

        // Set points value loss
        pointsValueLoss = targetManager.pointsValueLoss;

        // Set target transform
        moveTowards.target   = player.transform;
        rotateTowards.target = player.transform;

        // Enable scripts
        moveTowards.enabled   = true;
        rotateTowards.enabled = true;
    }
Пример #15
0
    protected virtual void Awake()
    {
        changeRotatingTarget = GetComponent <ChangeRotatingTarget>();
        moveTowards          = GetComponent <MoveTowards>();

        if (GetComponent <Animator>() != null)
        {
            animators.Add(GetComponent <Animator>());
        }

        foreach (Animator anim in GetComponentsInChildren <Animator>())
        {
            animators.Add(anim);
        }

        if (adjustAnimSpeedToActualSpeed)
        {
            StartCoroutine(TrackSpeed());
        }
    }
Пример #16
0
        private void InitFilters()
        {
            L_brownFilter = new ColorFiltering();
            D_brownFilter = new ColorFiltering();

            L_brownFilter.Red   = new IntRange(125, 140);
            L_brownFilter.Green = new IntRange(95, 110);
            L_brownFilter.Blue  = new IntRange(110, 130);

            D_brownFilter.Red   = new IntRange(55, 85);
            D_brownFilter.Green = new IntRange(45, 75);
            D_brownFilter.Blue  = new IntRange(45, 75);


            blobFilter = new BlobsFiltering();
            blobFilter.CoupledSizeFiltering = true;
            blobFilter.MinWidth             = 70;
            blobFilter.MinHeight            = 70;

            diffFilter = new Difference();
            diffFilter.OverlayImage = back;

            thresholdFilter = new Threshold(40);

            erosionFilter = new Erosion();

            edgeFilter = new Edges();

            openFilter = new Opening();

            pixelFilter = new Pixellate();

            morphFilter = new Morph();
            morphFilter.SourcePercent = 0.9;

            towardsFilter          = new MoveTowards();
            towardsFilter.StepSize = 10;

            blobCounter = new BlobCounter();
            blobGrabber = new ExtractBiggestBlob();
        }
Пример #17
0
    //spawn the 2 occupiers and give them their target location to the node
    public void Spawn(Node _newNode, float _nodeSize)
    {
        //spawn occupier 1 on the left
        float      yPosLeft  = Random.Range(spawnPointLeft1.position.y, spawnPointLeft2.position.y);
        GameObject occupier1 = Instantiate(studentsToSpawn[Random.Range(0, studentsToSpawn.Count)], new Vector2(spawnPointLeft1.position.x, yPosLeft), transform.rotation) as GameObject;

        //choose a random position in the adjusted node size for x & y
        float randomX = Random.Range(nodeRamdomizerMinBounds * _nodeSize, nodeRamdomizerMaxBounds * _nodeSize);
        float randomY = Random.Range(nodeRamdomizerMinBounds * _nodeSize, nodeRamdomizerMaxBounds * _nodeSize);

        if (Random.Range(0, 0.99f) > 0.5f)
        {
            randomX *= -1;
        }
        if (Random.Range(0, 0.99f) > 0.5f)
        {
            randomY *= -1;
        }

        MoveTowards moveTowardsUser1 = occupier1.GetComponent <MoveTowards>();

        moveTowardsUser1.SetTargetToMove(new Vector2(_newNode.X * _nodeSize + randomX, _newNode.Y * _nodeSize + randomY));
        moveTowardsUser1.SetTargetToRotate(new Vector2(_newNode.X * _nodeSize + randomX, _newNode.Y * _nodeSize + randomY));

        //spawn occupier 2 on the right
        float      yPosRight = Random.Range(spawnPointRight1.position.y, spawnPointRight2.position.y);
        GameObject occupier2 = Instantiate(teachterToSpawn[Random.Range(0, teachterToSpawn.Count)], new Vector2(spawnPointRight1.position.x, yPosRight), transform.rotation) as GameObject;

        MoveTowards moveTowardsUser2 = occupier2.GetComponent <MoveTowards>();

        moveTowardsUser2.SetTargetToMove(new Vector2(_newNode.X * _nodeSize + (randomX * -1), _newNode.Y * _nodeSize + (randomY * -1)));
        moveTowardsUser2.SetTargetToRotate(new Vector2(_newNode.X * _nodeSize + (randomX * -1), _newNode.Y * _nodeSize + (randomY * -1)));

        //instantiate the the target to rotate to, once the two occupiers get close
        occupier1.GetComponent <ChangeRotatingTarget>().Instantiate(occupier2.transform);
        occupier2.GetComponent <ChangeRotatingTarget>().Instantiate(occupier1.transform);

        //give the node its occupiers, so it can later send them away
        _newNode.AddOccupiers(occupier1, occupier2);
    }
Пример #18
0
    // Update is called once per frame
    void Update()
    {
        RaycastHit hit;
        Ray        ray = Camera.main.ScreenPointToRay(Input.mousePosition);

        if (Physics.Raycast(ray, out hit))
        {
            //Player.GetComponent<MoveTowards> ().enabled = true;

            MouseHit.SetActive(true);
            MouseHit.transform.position = hit.point;

            //Accelerate The Player

            MoveTowards MoveScript = Player.GetComponent <MoveTowards> ();
            MoveScript.speed = Mathf.Lerp(MoveScript.speed, MoveScript.MaxSpeed, Time.deltaTime * MoveScript.acceleration);

            Debug.Log("Cursor On");
        }

        else

        {
            Debug.Log("Cursor Off");
            MouseHit.SetActive(false);

            //Decelerate the Player

            MoveTowards MoveScript = Player.GetComponent <MoveTowards> ();
            MoveScript.speed = Mathf.Lerp(MoveScript.speed, 0, Time.deltaTime * MoveScript.acceleration);



            //Player.GetComponent<MoveTowards> ().enabled = false;
        }
        //Instantiate (MouseHit, hit.point, Quaternion.identity);
    }
Пример #19
0
    public void InitTarget()
    {
        //get component
        moveTowards          = GetComponent <MoveTowards>();
        rotateTowards        = GetComponent <RotateTowards>();
        destructionParticles = destructionParticlesContainer.GetComponentsInChildren <ParticleSystem>();

        //set points value loss
        pointsValueLoss = targetManager.pointsValueLoss;

        //set target transform
        moveTowards.target   = player.transform;
        rotateTowards.target = player.transform;

        //store original pitch
        originalPitch = hitClip.pitch;

        //set points display
        pointsDisplay = targetManager.pointsDisplay;

        //enable scripts
        moveTowards.enabled   = true;
        rotateTowards.enabled = true;
    }
    protected override void ExtendedAction(GameObject emittedObject)
    {
        // set the proper move script
        MoveTowards moveScript = emittedObject.GetComponent <MoveTowards>();

        if (moveScript != null)
        {
            moveScript.Target = targetDestination;
            moveScript.touchCallbackTarget = gameObject;
        }
        else
        {
            Debug.LogError("No MoveTowards script detected in particle");
        }

        // set the proper degrad particle script
        DegradParticle scriptParticle = emittedObject.GetComponent <DegradParticle>();

        scriptParticle.Damage = damage;

        // add the tracking script to track the emitted particles
        //		TrackObject scriptTrack = emittedObject.AddComponent<TrackObject>();
        //		scriptTrack.Init(listSpawned);
    }
Пример #21
0
 private void Awake()
 {
     _moveTowards = gameObject.AddComponent <MoveTowards>();
 }
Пример #22
0
        public Node <INode> GetNode(string nodeName)
        {
            switch (nodeName)
            {
            case Absolute.NAME:
                INode nodeAbsolute = new Absolute() as INode;
                return(new Node <INode>(nodeAbsolute));

            case Approx.NAME:
                INode nodeAprox = new Approx() as INode;
                return(new Node <INode>(nodeAprox));

            case ArcCos.NAME:
                INode nodeArcCos = new ArcCos() as INode;
                return(new Node <INode>(nodeArcCos));

            case ArcSin.NAME:
                INode nodeArcSin = new ArcSin() as INode;
                return(new Node <INode>(nodeArcSin));

            case ArcTan2.NAME:
                INode nodeArcTan2 = new ArcTan2() as INode;
                return(new Node <INode>(nodeArcTan2));

            case Ceil.NAME:
                INode nodeCeil = new Ceil() as INode;
                return(new Node <INode>(nodeCeil));

            case CeilToInt.NAME:
                INode nodeCeilToInt = new CeilToInt() as INode;
                return(new Node <INode>(nodeCeilToInt));

            case Clamp.NAME:
                INode nodeClamp = new Clamp() as INode;
                return(new Node <INode>(nodeClamp));

            case Clamp01.NAME:
                INode nodeClamp01 = new Clamp01() as INode;
                return(new Node <INode>(nodeClamp01));

            case ClosestPowerOf2.NAME:
                INode nodeClosestPowerOf2 = new ClosestPowerOf2() as INode;
                return(new Node <INode>(nodeClosestPowerOf2));

            case Cosinus.NAME:
                INode nodeCosinus = new Cosinus() as INode;
                return(new Node <INode>(nodeCosinus));

            case DeltaAngle.NAME:
                INode nodeDeltaAngle = new DeltaAngle() as INode;
                return(new Node <INode>(nodeDeltaAngle));

            case Exp.NAME:
                INode nodeExp = new Exp() as INode;
                return(new Node <INode>(nodeExp));

            case Floor.NAME:
                INode nodeFloor = new Floor() as INode;
                return(new Node <INode>(nodeFloor));

            case FloorToInt.NAME:
                INode nodeFloorToInt = new FloorToInt() as INode;
                return(new Node <INode>(nodeFloorToInt));

            case Lerp.NAME:
                INode nodeLerp = new Lerp() as INode;
                return(new Node <INode>(nodeLerp));

            case LerpAngle.NAME:
                INode nodeLerpAngle = new LerpAngle() as INode;
                return(new Node <INode>(nodeLerpAngle));

            case Log10.NAME:
                INode nodeLog10 = new Log10() as INode;
                return(new Node <INode>(nodeLog10));

            case Logarithm.NAME:
                INode nodeLogarithm = new Logarithm() as INode;
                return(new Node <INode>(nodeLogarithm));

            case Sinus.NAME:
                INode nodeSinus_ = new Sinus() as INode;
                return(new Node <INode>(nodeSinus_));

            case Max.NAME:
                INode nodeMax = new Max() as INode;
                return(new Node <INode>(nodeMax));

            case Min.NAME:
                INode nodeMin = new Min() as INode;
                return(new Node <INode>(nodeMin));

            case MoveTowards.NAME:
                INode nodeMoveTowards = new MoveTowards() as INode;
                return(new Node <INode>(nodeMoveTowards));

            case MoveTowardsAngle.NAME:
                INode nodeMoveTowardsAngle = new MoveTowardsAngle() as INode;
                return(new Node <INode>(nodeMoveTowardsAngle));

            case NextPowerOfTwo.NAME:
                INode nodeNextPowerOfTwo = new NextPowerOfTwo() as INode;
                return(new Node <INode>(nodeNextPowerOfTwo));

            case PerlinNoise.NAME:
                INode nodePerlinNoise = new PerlinNoise() as INode;
                return(new Node <INode>(nodePerlinNoise));

            case PingPong.NAME:
                INode nodePingPong = new PingPong() as INode;
                return(new Node <INode> (nodePingPong));

            case Pow.NAME:
                INode nodePow = new Pow() as INode;
                return(new Node <INode>(nodePow));

            case SquareRoot.NAME:
                INode nodeSqrt = new SquareRoot() as INode;
                return(new Node <INode>(nodeSqrt));

            case Tan.NAME:
                INode nodeTan = new Tan() as INode;
                return(new Node <INode>(nodeTan));

            case Random.NAME:
                INode nodeRandom = new Random() as INode;
                return(new Node <INode>(nodeRandom));

            default:
                return(null);
            }
        }
Пример #23
0
    // Update is called once per frame
    void FixedUpdate()
    {
        Debug.Log("health/maxhealth: " + (float)health / maxHealth);
        spriteRenderer.color = Color.Lerp(Color.white, colorHealth, (float)health / maxHealth);
        if (health < detectHealth)
        {
            detectHealth = health;
            if (health > 0)
            {
                SoundSpawner.PlaySoundObj(transform.position, hurtSound);
            }
            currentBiteMoveSpeed = 0;
        }

        if (health <= 0 && health > -999)
        {
            currentAttack = null;
            GameObject[] missiles = GameObject.FindGameObjectsWithTag("Missile");
            foreach (var missile in missiles)
            {
                missile.GetComponent <Missile>().DestroyImmediately();
            }
            health                = -1000;
            currentAttackState    = Attack.Defeated;
            spriteRenderer.sprite = defeated;
            gameObject.layer      = 13;
            gameObject.tag        = "Enemy";
            animator.enabled      = true;
            hurtHitbox.SetActive(false);
            collider.radius = 1.44f;
            collider.offset = new Vector2(0, 0.66f);
            gameObject.GetComponent <SimpleVals>().enabled = true;
            gameObject.GetComponent <ThrownVals>().enabled = true;
            collider.enabled    = false;
            boxCollider.enabled = true;
            rb.gravityScale     = 1;
            SoundSpawner.PlaySoundObj(transform.position, hurtSound, 1, false, 80, 0.8f);
            SoundSpawner.PlaySoundObj(transform.position, hurtSound, 1, false, 80, 0.8f);
        }

        if (currentAttack == null && health > 0)
        {
            currentAttackState = (Attack)Random.Range(0, 2);
            transform.rotation = quaternion.Euler(0, 0, 0);
            ResetRbTransform();
        }

        switch (currentAttackState)
        {
        case Attack.Missiles:
        {
            trailRenderer.enabled = false;
            if (currentAttack == null && health > 0)
            {
                moveTowards = MoveTowards.Choose;
                SoundSpawner.PlaySoundObj(transform.position, teleportSound);
                particleSystem.Play();
                transform.position = new Vector2(player.transform.position.x + Random.Range(-10, 10f), player.transform.position.y + 8f);
                biteAmt            = 0;
                currentAttack      = StartCoroutine(FiringAtPlayer());
            }
            var     step      = (missileFiringMovementSpeed * lessHealthFasterAttack()) * Time.deltaTime;
            Vector3 chosenPos = Vector3.zero;
            switch (moveTowards)
            {
            case MoveTowards.Choose:
            {
                moveTowards = (MoveTowards)Random.Range(1, 4);
                break;
            }

            case MoveTowards.Left:
            {
                chosenPos = new Vector3(-32, Random.Range(-4f, 2f));
                break;
            }

            case MoveTowards.Right:
            {
                chosenPos = new Vector3(43, Random.Range(-4f, 2f));
                break;
            }

            case MoveTowards.Player:
            {
                chosenPos = new Vector3(player.transform.position.x, Random.Range(-4f, 2f));
                break;
            }
            }
            transform.position =
                Vector2.MoveTowards(transform.position, chosenPos, step);
            if (transform.position.x < -30)
            {
                transform.position = new Vector3(player.transform.position.x, 0) + new Vector3(Random.Range(0, 10f), 0);
                SoundSpawner.PlaySoundObj(transform.position, teleportSound);
                particleSystem.Play();
                if (Random.value > 0.5f)
                {
                    moveTowards = MoveTowards.Right;
                }
                else
                {
                    moveTowards = MoveTowards.Player;
                }
            }
            if (transform.position.x > 41)
            {
                transform.position = new Vector3(player.transform.position.x, 0) + new Vector3(Random.Range(-10f, 0f), 0);
                SoundSpawner.PlaySoundObj(transform.position, teleportSound);
                particleSystem.Play();
                if (Random.value > 0.5f)
                {
                    moveTowards = MoveTowards.Left;
                }
                else
                {
                    moveTowards = MoveTowards.Player;
                }
            }
            transform.position = new Vector3(transform.position.x, (Mathf.Sin(Time.time * (lessHealthFasterAttack() * 6.5f)) * lessHealthFasterAttack()));
            if (transform.position.y > 0)
            {
                spriteRenderer.sprite = laugh;
                if (canFireMissile)
                {
                    canFireMissile = false;
                    MissileFire();
                }
            }
            if (transform.position.y <= 0)
            {
                spriteRenderer.sprite = smile;
                canFireMissile        = true;
            }

            break;
        }

        case Attack.Bite:
        {
            if (currentAttack == null && health > 0)
            {
                currentAttack = StartCoroutine(Bite());
            }
            var step = currentBiteMoveSpeed * Time.deltaTime;
            transform.position =
                Vector2.MoveTowards(transform.position, bitePos, step);
            break;
        }

        case Attack.Defeated:
        {
            spriteRenderer.sprite = defeated;
            trailRenderer.enabled = false;
            currentAttack         = null;
            break;
        }
        }
    }
Пример #24
0
 public void SetUp()
 {
     NewPlace   = new Mock <IBattlefieldPlace>().Object;
     TurnAction = Player.TurnActions.TurnAction.Move.Towards(NewPlace) as MoveTowards;
 }
Пример #25
0
    private MoveTowards moveTowards;                            //!< Cached component MoveTowards.

    private void Start()
    {
        moveTowards = GetComponent <MoveTowards>();
    }
        void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            /*  f = motionDetector.ProcessFrame(video); */

            video = (Bitmap)eventArgs.Frame.Clone();
            Bitmap video2 = (Bitmap)eventArgs.Frame.Clone();



            MoveTowards moveTowardsFilter = new MoveTowards();

            moveTowardsFilter.OverlayImage = video;
            Bitmap tmp = moveTowardsFilter.Apply(video2);

            video2.Dispose();
            video2 = tmp;



            FiltersSequence processingFilter = new FiltersSequence();

            processingFilter.Add(new Difference(video2));
            processingFilter.Add(new Threshold(15));
            processingFilter.Add(new Opening());
            processingFilter.Add(new Edges());



            if (OnOff == true)

            {
                pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
                g = Graphics.FromImage(video2);
                g.DrawString(countdown.ToString(), new Font("Arial", 20), new SolidBrush(Color.Red), new PointF(2, 4));
                g.Dispose();
            }

            if (mode == 1)
            {
                ColorFiltering colorfilter = new ColorFiltering();

                colorfilter.Red   = new IntRange(Red, (int)numericUpDown1Red.Value);
                colorfilter.Green = new IntRange(Green, (int)numericUpDown2Green.Value);
                colorfilter.Blue  = new IntRange(Blue, (int)numericUpDown3Blue.Value);
                colorfilter.ApplyInPlace(video2);

                BlobCounter blobcounter = new BlobCounter();
                blobcounter.MinHeight    = 20;
                blobcounter.MaxWidth     = 20;
                blobcounter.ObjectsOrder = ObjectsOrder.Size;
                blobcounter.ProcessImage(video2);
                Rectangle[] rect = blobcounter.GetObjectsRectangles();
                Graphics    g    = Graphics.FromImage(video2);

                /* if (rect.Length>10)
                 * {*/
                /* Rectangle objec = rect[0];*/
                Graphics graphic = Graphics.FromImage(video2);
                using (Pen pen = new Pen(Color.Red, 1))
                    foreach (Rectangle rec in rect)
                    {
                        g.DrawRectangle(pen, rec);
                        if ((rec.Width > 15) && (rec.Height > 15))
                        {
                        }
                    }
                {
                    /*   graphic.DrawRectangle(pen,objec);*/
                }
                graphic.Dispose();
                /* }*/

                pictureBox2.Image = video2;
            }
            pictureBox1.Image = video;
        }
Пример #27
0
    public static IEnumerator DrawCard(Player p)
    {
        if (p.Hand.Count > Consts.MaxHand)
        {
            Debug.LogError("Trying to draw more than the max number of cards!");
        }

        if (p.Deck.Count > 0)
        {
            p.Hand.Add(p.Deck[p.Deck.Count - 1]);
            p.Deck.RemoveAt(p.Deck.Count - 1);

            int           index      = p.Hand.Count - 1;
            Transform     handMarker = GetHandMarkers(p)[index];
            CardComponent cmp        = p.Hand[index].Owner;
            cmp.IsFaceDown = false;

            //Move sideways, then down onto the table.
            MoveTowards mt = cmp.gameObject.AddComponent <MoveTowards>();
            mt.Speed = Consts.DrawCardMoveSpeed;
            mt.SetTarget(new Vector3(handMarker.position.x, cmp.MyTr.position.y, handMarker.position.z));
            mt.OnMovementFinished += mt2 =>
            {
                mt2.SetTarget(handMarker.position);
                mt2.OnMovementFinished += mt3 =>
                {
                    GameObject.Destroy(mt3);
                };
            };

            //Wait for all that movement to finish.
            while (mt != null)
            {
                yield return(null);
            }
        }
        else if (p.DiscardPile.Count > 0)
        {
            //No cards in deck, so get cards from discard pile.
            //First shuffle the discard pile: http://stackoverflow.com/questions/273313/randomize-a-listt-in-c-sharp
            System.Random rng = new System.Random();
            int           n   = p.DiscardPile.Count;
            while (n > 1)
            {
                n--;
                int  k     = rng.Next(n + 1);
                Card value = p.DiscardPile[k];
                p.DiscardPile[k] = p.DiscardPile[n];
                p.DiscardPile[n] = value;
            }

            //Move all the discarded cards into the deck.
            List <MoveTowards> movements = new List <MoveTowards>();
            foreach (Card c in p.DiscardPile)
            {
                movements.Add(MoveCardToDeck(c, p));
            }

            //Wait for all that movement to finish.
            while (movements.Count > 0)
            {
                yield return(null);

                movements.RemoveAll(mt => mt == null);
            }

            yield return(GameFSM.Instance.StartCoroutine(DrawCard(p)));
        }
        else
        {
            FSM.IsGameOver = true;
            //TODO: End game.
        }
    }
Пример #28
0
 private void OnMoveComplete(MoveTowards moveTowards)
 {
     Completed();
     Source.GetComponentInChildren<SkeletonAnimation>().AnimationName = "idle";
     Source.GetComponent<MoveTowards>().MoveComplete -= OnMoveComplete;
     _pr.Fulfill();
     _pr = null;
 }
Пример #29
0
 // Use this for initialization
 protected virtual void Start()
 {
     HealthSys           = GetComponent <HealthSystem> ();
     _moveTowards        = GetComponent <MoveTowards>();
     _moveTowards.Target = Player.transform;
 }
Пример #30
0
 void Start()
 {
     WallParent = GetComponentInParent <MoveTowards>();
 }
Пример #31
0
 void Awake()
 {
     moveTowards = GetComponent <MoveTowards>();
 }