示例#1
0
    /**********************************************************************************/
    // устанавливаем компоненты для башни
    //
    /**********************************************************************************/
    protected override void BuildComponents()
    {
        // создаем и настраиваем компоненты
        m_effectMaster = new EffectMaster();
        m_weaponMaster = new WeaponMaster(this);
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.CLOSE_WEAPON, CloseWeapon);
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.MAIN_WEAPON, Weapon);
        Weapon.SetOwner((PLAYER)m_ownerID);
        Weapon.SetUnitID(m_unitID);

        m_drive = new TowerDrive(this);
        m_armor = new BaseArmor();
        LineRadar radar = new LineRadar(this);

        radar.SetRadarRadius(SearchRadius);
        radar.SetTargetCheckRate(SearchRate);
        m_radars.Add(radar);

        // настраиваем разрушаемость
        m_armor.UnitIsDown += OnDead;
        // передача местоположения юнита
        m_drive.PositionUpdate += radar.PositionUpdate;
        // передача данных о целях для стрельбы
        radar.RadarUpdate += m_weaponMaster.UpdateMainRadarData;

        SetDefaultParameter();
        SetEffectsCollection();
    }
示例#2
0
    void Start()
    {
        m_state = UNIT_STATE.ACTIVE;
        Weapon.SetUnitID(ID);
        Weapon.SetOwner(PLAYER.NEUTRAL);
        Grenade.SetUnitID(ID);
        Grenade.SetOwner(PLAYER.NEUTRAL);

        // создаем компоненты
        m_effectMaster = new EffectMaster();
        m_weaponMaster = new WeaponMaster(this);
        m_drive        = new WanderingDrive(this);
        m_armor        = new BaseArmor();

        // основной стрелковый радар
        LineRadar radar = new LineRadar(this);

        radar.SetRadarRadius(SearchingRadius);
        m_radars.Add(radar);

        // дополнительный радар для гранат
        GrenadeRadar gRadar = new GrenadeRadar(this);
        // считаем дистанцию полёта гранаты, это необходимо для настройки гранатного радара
        GameObject grenade = ObjectLibrary.GetInstance().GetPrefab(Grenade.BulletType);
        GrenadeCtr gCtr    = grenade.GetComponent <GrenadeCtr>();
        int        range   = (int)(gCtr.FlyDistance / Base.SIZE_OF_CELL);

        gRadar.SetRadarRadius(range);
        gRadar.SetScaningArea(gCtr.ExplosionRadius);
        m_radars.Add(gRadar);

        InitializeUnit();

        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.CLOSE_WEAPON, CloseWeapon);
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.MAIN_WEAPON, Weapon);
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.ADDITIONAL_WEAPON, Grenade);

        // настраиваем подключения компонент:
        // передача координат радару
        m_drive.PositionUpdate += radar.PositionUpdate;
        m_drive.PositionUpdate += gRadar.PositionUpdate;
        // передача данных о целях для стрельбы
        radar.RadarUpdate += m_weaponMaster.UpdateMainRadarData;
        // передача данных о целях для метания гранат
        gRadar.RadarUpdate += m_weaponMaster.UpdateAdditionalRadarData;
        // контроль движения при стрельбе
        m_weaponMaster.PauseDrive  += m_drive.StopMoving;
        m_weaponMaster.ResumeDrive += m_drive.StartMoving;
        // событие смерти юнита
        m_armor.UnitIsDown += this.OnDead;


        // устанавливаем дефолтные значения
        SetDefaultParameter();
        SetEffectsCollection();
    }
示例#3
0
    void Start()
    {
        InitializeUnit();

        m_state = UNIT_STATE.ACTIVE;
        Weapon.SetUnitID(ID);
        Weapon.SetOwner((PLAYER)m_ownerID);

        // создаем компоненты
        m_effectMaster = new EffectMaster();
        m_weaponMaster = new WeaponMaster(this);
        m_drive        = new BaseDrive(this);
        m_armor        = new BaseArmor();
        LineRadar radar = new LineRadar(this);

        radar.SetRadarRadius(SearchingRadius);
        StalkerRadar stRadar = new StalkerRadar((PLAYER)m_ownerID);

        m_radars.Add(radar);
        m_radars.Add(stRadar);

        InitializeUnit();

        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.CLOSE_WEAPON, CloseWeapon);
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.MAIN_WEAPON, Weapon);

        // настраиваем подключения компонент:
        // передача координат радару
        m_drive.PositionUpdate += radar.PositionUpdate;
        // настраиваем преследование
        stRadar.TargetToMove += m_drive.SetTargetToMove;
        // передача данных о целях для стрельбы
        radar.RadarUpdate += m_weaponMaster.UpdateMainRadarData;
        // контроль движения при стрельбе
        m_weaponMaster.PauseDrive  += m_drive.StopMoving;
        m_weaponMaster.ResumeDrive += m_drive.StartMoving;
        // событие смерти юнита
        m_armor.UnitIsDown += this.OnDead;


        // устанавливаем дефолтные значения
        SetDefaultParameter();
        SetEffectsCollection();
    }