コード例 #1
0
ファイル: Unit.cs プロジェクト: Seung-jin/WarSong
    void OnTriggerStay2D(Collider2D other)
    {
        if (other.tag == "UnitCenter") //적군일 때
        {
            Unit colliderUnit = other.gameObject.GetComponent <UnitCenter>().unitScript;

            if (playerNumber == 1 && colliderUnit.getPlayerNumber() == 2)
            {
                setCheckCanMove(false);
            }
            else if (playerNumber == 2 && colliderUnit.getPlayerNumber() == 1)
            {
                setCheckCanMove(false);
            }
        }
        else if (other.tag == "Castle")  //상대 성일 때
        {
            CastleScript castle = other.gameObject.GetComponent <CastleScript>();

            if (castle.playerNumber != playerNumber)
            {
                setCheckCanMove(false);
            }
        }
    }
コード例 #2
0
 void Start()
 {
     generatorScript = generator.GetComponent <EnemyGenerator>();
     castleScript    = castle.GetComponent <CastleScript>();
     winTextObj.SetActive(false);
     winTime = timerToWin;
     StartCoroutine(PlayStartAnim());
 }
 public void SetParameters(SeekForce seekForce, CastleScript castle)
 {
     foreach (Transform waypoint in castle.waypoints)
     {
         m_waypoints.Add(waypoint.position);
     }
     m_seekForce             = seekForce;
     m_currentWaypointNumber = 0;
     m_castle = castle;
 }
コード例 #4
0
ファイル: Unit.cs プロジェクト: Seung-jin/WarSong
    //적의 성을 공격
    public virtual IEnumerator CastleAttack(CastleScript enemyCastle)
    {
        yield return(new WaitForSeconds(1));

        enemyCastle.setCurrentCastleHP(enemyCastle.getCurrentCastleHP() - getDamage());

        if (enemyCastle.getCurrentCastleHP() > 0)
        {
            StartCoroutine(CastleAttack(enemyCastle));
        }
        else
        {
            checkCanMove = false;
        }
    }
コード例 #5
0
    public void Initialise(CastleScript castle, WorldGridScript world)
    {
        m_archeryCounter = new GameObject("Hover Archery Marker");
        m_infantryCounter = new GameObject("Hover Infantry Marker");
        m_cavalryCounter = new GameObject("Hover Cavalry Marker");

        m_archeryCounter.transform.SetParent(transform);
        m_infantryCounter.transform.SetParent(transform);
        m_cavalryCounter.transform.SetParent(transform);

        Vector3 temp = gameObject.transform.position;
        m_archeryCounter.transform.position = temp;
        m_infantryCounter.transform.position = temp;
        m_cavalryCounter.transform.position = temp;

        MeshRenderer archeryMeshRenderer = m_archeryCounter.AddComponent<MeshRenderer>();
        MeshFilter archeryMeshFilter = m_archeryCounter.AddComponent<MeshFilter>();
        archeryMeshRenderer.sharedMaterial = world.CounterMaterial;
        archeryMeshFilter.mesh = world.ArcheryCounterMesh;

        MeshRenderer infantryMeshRenderer = m_infantryCounter.AddComponent<MeshRenderer>();
        MeshFilter infantryMeshFilter = m_infantryCounter.AddComponent<MeshFilter>();
        infantryMeshRenderer.sharedMaterial = world.CounterMaterial;
        infantryMeshFilter.mesh = world.InfantryCounterMesh;

        MeshRenderer cavalryMeshRenderer = m_cavalryCounter.AddComponent<MeshRenderer>();
        MeshFilter cavalryMeshFilter = m_cavalryCounter.AddComponent<MeshFilter>();
        cavalryMeshRenderer.sharedMaterial = world.CounterMaterial;
        cavalryMeshFilter.mesh = world.CavalryCounterMesh;

        m_cavalryCounter.AddComponent<MeshCollider>();
        m_infantryCounter.AddComponent<MeshCollider>();
        m_archeryCounter.AddComponent<MeshCollider>();

        UnitSlider cavalry = m_cavalryCounter.AddComponent<UnitSlider>();
        UnitSlider infantry = m_infantryCounter.AddComponent<UnitSlider>();
        UnitSlider archery = m_archeryCounter.AddComponent<UnitSlider>();

        infantry.Init(castle.infantryRecruitmentTiles);
        cavalry.Init(castle.cavalryRecruitmentTiles);
        archery.Init(castle.archeryRecruitmentTiles);

        m_castle = castle;
    }
コード例 #6
0
ファイル: Unit.cs プロジェクト: Seung-jin/WarSong
    //충돌되는 물체 감지
    void OnTriggerEnter2D(Collider2D other)
    {
        if (other.tag == "UnitCenter") //적군일 때
        {
            Unit colliderUnit = other.gameObject.GetComponent <UnitCenter>().unitScript;

            if (playerNumber == 1 && colliderUnit.getPlayerNumber() == 2)
            {
                setCheckCanMove(false);
                unitImage.color = new Color(unitImage.color.r,
                                            unitImage.color.g, unitImage.color.b, 255);
                hpGuageBar.SetActive(true);
                StartCoroutine(Attack(colliderUnit));
            }
            else if (playerNumber == 2 && colliderUnit.getPlayerNumber() == 1)
            {
                setCheckCanMove(false);
                unitImage.color = new Color(unitImage.color.r,
                                            unitImage.color.g, unitImage.color.b, 255);
                hpGuageBar.SetActive(true);
                StartCoroutine(Attack(colliderUnit));
            }
        }
        else if (other.tag == "Castle")  //상대 성일 때
        {
            CastleScript castle = other.gameObject.GetComponent <CastleScript>();

            if (castle.playerNumber != playerNumber)
            {
                setCheckCanMove(false);
                unitImage.color = new Color(unitImage.color.r,
                                            unitImage.color.g, unitImage.color.b, 255);
                hpGuageBar.SetActive(true);
                StartCoroutine(CastleAttack(castle));
            }
        }
    }
コード例 #7
0
 // Use this for initialization
 void Start()
 {
     castleScript = GameObject.FindGameObjectWithTag("Castle").GetComponent <CastleScript>();
     image        = GetComponent <Image>();
 }
コード例 #8
0
 public override IEnumerator CastleAttack(CastleScript enemyCastle)
 {
     return(base.CastleAttack(enemyCastle));
 }
    // Use this for initialization
    void Start()
    {
        // Initialise behaviour list
        m_castleScript = FindObjectOfType <CastleScript>();
        m_behaviours   = new List <IBehaviour>();

        m_body = GetComponent <Rigidbody>();
        if (!m_animator)
        {
            m_animator = GetComponentInChildren <Animator> ();
        }


        //-----------------------------------------------------------------
        // The Castle Interaction Sequence

        // Set up the seek force and seek force parameter
        SeekForce m_castleSeekForce = new SeekForce();

        m_castleSeekForce.m_rotationSpeed = turnSpeed;

        // Set waypoints
        foreach (Transform waypoint in waypoints)
        {
            waypointVectors.Add(waypoint.position);
        }

        // Set up the castle interaction behaviour
        CastleScript            castle         = FindObjectOfType <CastleScript>();
        CastleInteractBehaviour castleInteract = new CastleInteractBehaviour();

        castleInteract.SetParameters(m_castleSeekForce, castle);

        // Set up condition for castle interaction sequence
        CastleTouchedCondition castleCondition = new CastleTouchedCondition();

        castleCondition.castleScript = castle;

        //Set up chase sequence
        Sequence castleSequence = new Sequence();

        castleSequence.addBehaviour(castleCondition);
        castleSequence.addBehaviour(castleInteract);

        //-----------------------------------------------------------------
        // The Ball Interaction Sequence

        // Set up the seek force and seek force parameter
        SeekForce m_ballSeekForce = new SeekForce();

        m_ballSeekForce.m_rotationSpeed = turnSpeed;

        // Set up the ball interaction behaviour
        if (!ball)
        {
            ball = FindObjectOfType <BallScript> ();
        }
        BallInteractBehaviour ballInteract = new BallInteractBehaviour();

        ballInteract.SetParameters(ball, m_ballSeekForce, 10.0f, middleBallTarget);

        // Set up condition for ball interaction sequence
        BallTouchedCondition ballCondition = new BallTouchedCondition();

        ballCondition.m_ball        = ball;
        ballCondition.ballBehaviour = ballInteract;

        //Set up chase sequence
        Sequence ballSequence = new Sequence();

        ballSequence.addBehaviour(ballCondition);
        ballSequence.addBehaviour(ballInteract);



        //-----------------------------------------------------------------
        // The Chase Sequence

        // Set up the seek force and seek force parameter
        /*SeekForce seekChase*/ m_seekForce = new SeekForce();
        m_seekForce.SetTarget(player);

        // Set up the seek behaviour
        seekBehaviour = new SteeringBehaviour();
        seekBehaviour.Constructor();
        seekBehaviour.AddNewForce(m_seekForce);

        // Set up condition for chase sequence
        WaveCondition waveCondition = new WaveCondition();
        //waveCondition.m_target = player;

        // Set up chase sequence
        Sequence chaseSequence = new Sequence();

        chaseSequence.addBehaviour(waveCondition);
        chaseSequence.addBehaviour(seekBehaviour);


        //----------------------------------------------------------------
        // The Wander Sequence

        // Set up seek force and seek parameter
        SeekForce seekWander = new SeekForce();

        seekWander.m_rotationSpeed = turnSpeed;

        // Set up rotational force and arrival parameter
        RotationalForce rotationWander = new RotationalForce();

        // Set up arrival force and arrival parameter
        ArrivalForce arrivalWander = new ArrivalForce();

        arrivalWander.SetParameter();

        // Set up wander behaviour
        LimitedWanderBehaviour wanderBehaviour = new LimitedWanderBehaviour();

        wanderBehaviour.SetLimit(middlePoint, maxRadius, maxDepth);
        wanderBehaviour.SetForce(seekWander, rotationWander, arrivalWander);
        wanderBehaviour.nearEnough = m_waypointTolerance;

        //----------------------------------------------------------------
        // The Main Selector

        // Set up main selector
        Selector mainSelector = new Selector();

        mainSelector.addBehaviour(castleSequence);
        mainSelector.addBehaviour(ballSequence);
        mainSelector.addBehaviour(chaseSequence);
        mainSelector.addBehaviour(wanderBehaviour);

        // Add all sequences to behaviour list
        m_behaviours.Add(mainSelector);

        // Setting the forward direction
        transform.forward = new Vector3(0, 0, 1);
    }