Пример #1
0
    /**********************************************************************************/
    // инициализация
    //
    /**********************************************************************************/
    void Start()
    {
        InitializeUnit();
        m_state = UNIT_STATE.ACTIVE;

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

        m_radars.Add(radar);

        // настраиваем подключения компонент:
        // передача координат радару
        m_drive.PositionUpdate += radar.PositionUpdate;
        // передача данных о преследуемых целях
        radar.TargetToMove += m_drive.SetTargetToMove;
        // событие смерти юнита
        m_armor.UnitIsDown += this.OnDead;
        // устанавливаем оружие ближнего боя
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.CLOSE_WEAPON, CloseWeapon);

        // устанавливаем дефолтные значения
        SetDefaultParameter();
        SetEffectsCollection();
    }
Пример #2
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();
    }
Пример #3
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();
    }
Пример #4
0
    /**********************************************************************************/
    // устанавливаем компоненты для объекта
    // в данном случае это компоненты пустышки, так как осмысленного поведения у
    // кустов и ящиков с мусором не предусмотрено
    //
    /**********************************************************************************/
    protected virtual void BuildComponents()
    {
        // создаем компоненты
        m_effectMaster = new EffectMaster();
        m_effectMaster.DisableEM();
        m_weaponMaster = new WeaponMaster(this);
        m_weaponMaster.DisableWM();
        m_drive = new EmptyDrive();
        m_armor = new EmptyArmor();
        EmptyRadar radar = new EmptyRadar();

        m_radars.Add(radar);
    }
Пример #5
0
    /**********************************************************************************/
    // устанавливаем компоненты для объекта
    // в данном случае объект получает урон и может быть разрушен
    //
    /**********************************************************************************/
    protected override void BuildComponents()
    {
        // создаем компоненты
        m_effectMaster = new EffectMaster();
        m_effectMaster.DisableEM();
        m_weaponMaster = new WeaponMaster(this);
        m_weaponMaster.DisableWM();
        m_drive = new EmptyDrive();
        m_armor = new BaseArmor();
        EmptyRadar radar = new EmptyRadar();

        m_radars.Add(radar);

        // настраиваем разрушаемость
        m_armor.UnitIsDown += OnDead;

        SetDefaultParameter();
    }
Пример #6
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();
    }
Пример #7
0
    protected void Start()
    {
        InitializeUnit();

        m_state = UNIT_STATE.ACTIVE;

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

        PredatorDrive drive = new PredatorDrive(this);

        drive.SetSpeedMultiplier(SpeedBoost);
        m_drive = drive;

        m_armor = new BaseArmor();
        CircleRadar radar = new CircleRadar(this);

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

        InitializeUnit();

        // настраиваем подключения компонент:
        // передача координат радару
        m_drive.PositionUpdate += radar.PositionUpdate;
        // передача данных о преследуемых целях
        radar.TargetToMove += m_drive.SetTargetToMove;
        // событие смерти юнита
        m_armor.UnitIsDown += this.OnDead;
        // устанавливаем оружие ближнего боя
        m_weaponMaster.SetWeapon(WeaponMaster.WeaponSlot.CLOSE_WEAPON, CloseWeapon);

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