示例#1
0
文件: Rat.cs 项目: Wivor/Rotten_Zone
    //-------------- FOR ANIMATION TESTING

    /*
     * public ScriptableRat scriptableRat;
     * private void Start()
     * {
     *  Initialize(scriptableRat, team, 0);
     * }
     */
    //-------------- FOR ANIMATION TESTING

    public void Initialize(ScriptableRat scriptableRat, Team team, int path)
    {
        Statistics = new Statistics(scriptableRat);
        this.team  = team;

        UnityFactory.factory.LoadData(scriptableRat.dragonBonesData);
        armatureComponent = UnityFactory.factory.BuildArmatureComponent("melee_unit", gameObject: transform.GetChild(0).gameObject);

        pathPosition = Random.Range(0, 9);
        //Vector3 capturePointSize = FindObjectOfType<CapturePoint>().transform.parent.gameObject.GetComponent<Renderer>().bounds.size;
        Vector3 capturePointSize = new Vector3(1, 1, 1);

        capturePosition = new Vector3(Random.Range(-capturePointSize.x / 2, capturePointSize.x / 2), 0, Random.Range(-capturePointSize.z / 2, capturePointSize.z / 2));

        fieldOfView = GetComponent <FieldOfView>();
        fieldOfView.Initialize(scriptableRat.viewDistance, this);

        if (team == Team.B)
        {
            armatureComponent.armature.flipX = true;
        }

        agent.speed = Statistics.speed;
        GetComponent <AnimationsController>().Initialize(armatureComponent);
        GetComponent <RatController>().Initialize(this, path);
        GetComponent <HealthBar>().Initialize(this);
    }
示例#2
0
 public Statistics(ScriptableRat scriptableRat)
 {
     ranged        = scriptableRat.ranged;
     health        = scriptableRat.health;
     currentHealth = scriptableRat.health;
     attack        = scriptableRat.attack;
     attackSpeed   = scriptableRat.attackSpeed;
     defence       = scriptableRat.defence;
     range         = scriptableRat.range;
     speed         = scriptableRat.speed;
     capPoints     = scriptableRat.capPoints;
     cost          = scriptableRat.capPoints;
 }