예제 #1
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
    public virtual void Init(RobotCreatInfo info, Vector3 destination)
    {
        //init equipment
        InitEquitments(info);

        //init the parameter
        BodyParameter _parameter = DataManager.Instance.GetBodyParameter(info.bodyName.ToString());

        InitParameterI(ref _parameter);
        InitParameterII(ref _parameter);
        parameter = _parameter;

        //agent
        if (_agent == null)
        {
            _agent = GetComponent <NavMeshAgent>();
        }

        //init state machine behaviors & navigate agent
        InitBehaviors();
        SetDestination();

        _agent.speed = parameter.MoveSpeed;

        //health TODO: change the health
        robotHealth.Init(this, parameter.Health, parameter.Power);

        //effect
        robotEffect.Init(this);

        //teamcolor
        teamColor = info.teamColor;

        isInit = true;
    }
예제 #2
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
    virtual public float GetCreateTime(RobotCreatInfo info)
    {
        float res = DataManager.Instance.GetBodyParameter(info.bodyName.ToString()).CreateTime
                    + DataManager.Instance.GetWeaponParameter(info.equipments[0].ToString()).CreateTime
                    + DataManager.Instance.GetPusherParameter(info.equipments[1].ToString()).CreateTime
                    + DataManager.Instance.GetArmorParameter(info.equipments[2].ToString()).CreateTime;

        return(res);
    }
예제 #3
0
    public void AddNewRobotCreator( RobotCreatInfo info )
    {
        info.teamColor = TeamColor.Blue;
        info.initPos = BlueTeamInitPos;
        RobotCreateControllor newRCC = new RobotCreateControllor(info);
        RCCList.Add(newRCC);

        Message msg = new Message();
        msg.AddMessage("Controller" , newRCC);
        EventManager.Instance.PostEvent(EventDefine.NewCreateController, msg);
    }
예제 #4
0
    public void AddNewRobotCreator(RobotCreatInfo info)
    {
        info.teamColor = TeamColor.Blue;
        info.initPos   = BlueTeamInitPos;
        RobotCreateControllor newRCC = new RobotCreateControllor(info);

        RCCList.Add(newRCC);

        Message msg = new Message();

        msg.AddMessage("Controller", newRCC);
        EventManager.Instance.PostEvent(EventDefine.NewCreateController, msg);
    }
예제 #5
0
    public void Create()
    {
        RobotCreatInfo info = new RobotCreatInfo();

        info.bodyName = (BodyNames) Enum.Parse( typeof(BodyNames), bodySelector.GetName());

        info.equipments = new EquipmentNames[3];
        for(int i = 0 ; i < 3 ; ++ i )
        if (selectors[i].GetName() != "")
            info.equipments[i] = (EquipmentNames) Enum.Parse( typeof(EquipmentNames), selectors[i].GetName());
        else
            info.equipments[i] = EquipmentNames.None;

        ObjectCreatManager.Instance.AddNewRobotCreator(info);
    }
예제 #6
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
    virtual public void InitEquitments(RobotCreatInfo info)
    {
        // Debug.Log("init Equipment");

        //TODO: make the position selection not in an unchangeable function
        //the positions are now defined in the function
        EquipmentFactory.EquipmentCreatePosition[] posList =
        {
            EquipmentFactory.EquipmentCreatePosition.Up,
            EquipmentFactory.EquipmentCreatePosition.LeftRight,
            EquipmentFactory.EquipmentCreatePosition.Down,
        };

        for (int i = 0; i < info.equipments.Length && i < posList.Length; ++i)
        {
            string equipmentName = info.equipments[i].ToString();
            EquipmentFactory.EquipmentCreatePosition pos = posList[i];
            equipmentList.Add(EquipmentFactory.CreateEquipment(equipmentName, this, pos));
        }
    }
예제 #7
0
    public void Create()
    {
        RobotCreatInfo info = new RobotCreatInfo();

        info.bodyName = (BodyNames)Enum.Parse(typeof(BodyNames), bodySelector.GetName());

        info.equipments = new EquipmentNames[3];
        for (int i = 0; i < 3; ++i)
        {
            if (selectors[i].GetName() != "")
            {
                info.equipments[i] = (EquipmentNames)Enum.Parse(typeof(EquipmentNames), selectors[i].GetName());
            }
            else
            {
                info.equipments[i] = EquipmentNames.None;
            }
        }

        ObjectCreatManager.Instance.AddNewRobotCreator(info);
    }
예제 #8
0
 public RobotCreateControllor(RobotCreatInfo _info)
 {
     timer = 0;
     info = _info;
 }
예제 #9
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
    public virtual void InitEquitments(RobotCreatInfo info )
    {
        // Debug.Log("init Equipment");

        //TODO: make the position selection not in an unchangeable function
        //the positions are now defined in the function
        EquipmentFactory.EquipmentCreatePosition[] posList =
        {
            EquipmentFactory.EquipmentCreatePosition.Up,
            EquipmentFactory.EquipmentCreatePosition.LeftRight,
            EquipmentFactory.EquipmentCreatePosition.Down,
        };

        for(int i = 0; i < info.equipments.Length && i < posList.Length ; ++i )
        {
            string equipmentName = info.equipments[i].ToString();
            EquipmentFactory.EquipmentCreatePosition pos = posList[i];
            equipmentList.Add(EquipmentFactory.CreateEquipment(equipmentName, this , pos ));
        }
    }
예제 #10
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
    public virtual void Init(RobotCreatInfo info , Vector3 destination)
    {
        //init equipment
        InitEquitments(info);

        //init the parameter
        BodyParameter _parameter = DataManager.Instance.GetBodyParameter(info.bodyName.ToString());
        InitParameterI(ref _parameter);
        InitParameterII(ref _parameter);
        parameter = _parameter;

        //agent
        if ( _agent == null )
            _agent = GetComponent<NavMeshAgent>();

        //init state machine behaviors & navigate agent
        InitBehaviors();
        SetDestination();

        _agent.speed = parameter.MoveSpeed;

        //health TODO: change the health
        robotHealth.Init(this, parameter.Health , parameter.Power);

        //effect
        robotEffect.Init(this);

        //teamcolor
        teamColor = info.teamColor;

        isInit = true;
    }
예제 #11
0
파일: Robot.cs 프로젝트: AtwoodDeng/miniRTS
 public virtual float GetCreateTime(RobotCreatInfo info)
 {
     float res = DataManager.Instance.GetBodyParameter(info.bodyName.ToString()).CreateTime
                     + DataManager.Instance.GetWeaponParameter(info.equipments[0].ToString()).CreateTime
                     + DataManager.Instance.GetPusherParameter(info.equipments[1].ToString()).CreateTime
                     + DataManager.Instance.GetArmorParameter(info.equipments[2].ToString()).CreateTime;
     return res;
 }
예제 #12
0
 public RobotCreateControllor(RobotCreatInfo _info)
 {
     timer = 0;
     info  = _info;
 }