Esempio n. 1
0
    public override void Configure(Values values)
    {
        base.Configure(values);

        var fields = new Dictionary <string, ModifierType> {
            { "BaseRegeneration", ModifierType.BaseRegeneration }, { "BurningTimer", ModifierType.BurningTimerDuration }, { "DebuffTimer", ModifierType.DebuffTimerDuration }, { "WaterHPRestore", ModifierType.WaterHealthRestore }, { "SunHPrestore", ModifierType.SunHealthRestore }, { "ManureHPAdd", ModifierType.ManureHealthRestore }, { "DamageKoef", ModifierType.BaseDamage }, { "MaxAcorns", ModifierType.MaxAcorns }
        };

        MaxHealth = values.Get("baseHP", MaxHealth);
        MoveSpeed = values.Get("baseSpeed", MoveSpeed);

        ModifierTypes = new ModifierType[fields.Count];
        OffsetValues  = new OffsetValue[fields.Count];

        var i = 0;

        foreach (var each in fields)
        {
            ModifierTypes[i] = fields[each.Key];
            OffsetValues[i]  = new OffsetValue(values.Get(each.Key, 0f), OffsetValue.OffsetValueType.Constant);

            i++;
        }

        BaseWeapon = values.GetScriptableObject <RangedWeaponInfo>("BaseWeapon");

        SpeedBonusPerItem = values.Get("SpeedUpProgress", 0f);
    }
Esempio n. 2
0
    // Use this for initialization
    void Awake()
    {
        IWeaponAnimation  weaponAnimation = new WeaponAnimationInfo(weaponAnimations.OnEquipTime, weaponAnimations.UnequipTime);
        List <ISlashInfo> slashes         = new List <ISlashInfo>();

        for (int i = 0; i < meleeAttacks.Slashes.Count; i++)
        {
            slashes.Add(meleeAttacks.Slashes[i]);
        }
        ISlashLogic slashLogic = new SlashLogic(meleeAttacks.TimeToWait, ref slashes);

        IRangedWeaponInfo weaponInfo = new RangedWeaponInfo
                                       (
            rangedWeaponInfo.WeaponName, rangedWeaponInfo.Damage,
            rangedWeaponInfo.NumberOfAmmoInMagazine, rangedWeaponInfo.MaximumMagazineSize,
            rangedWeaponInfo.ReloadTime, rangedWeaponInfo.ShootDurationTime,
            rangedWeaponInfo.WeaponType, slashLogic,
            bulletSpawn, rangedWeaponInfo.DamagableLayer
                                       );

        IWeaponPlace weaponPlace = new WeaponPlaces(ref idle, ref use);

        this.rangedWeapon = new RangedWeapon(ref weaponAnimation, ref weaponInfo, ref weaponPlace, this.transform);
        this.rangedWeapon.PlaceWeapon(true);
        this.weaponRenderer = GetComponent <LineRenderer>();
    }
Esempio n. 3
0
    public override void Configure(csv.Values values)
    {
        base.Configure(values);

        AggroRadius   = values.Get("AgroRadius", 0);
        Weapon1       = values.GetScriptableObject <RangedWeaponInfo>("Weapon1");
        ItemsToDrop   = values.GetScriptableObjects <ItemInfo>("DroppedItems");
        DropChance    = values.Get("DropChance", 0f);
        SpawnInterval = values.Get("RespawnTimer", -1f);
        SpeakChance   = values.Get("SpeakChance", 0.2f);

        MaxLiveEnemiesPerSpawner = values.Get("MaxRespCount", 1f);
        PawnPrefab = values.GetPrefabWithComponent <EnemyCharacterPawn>("Visual", fixName: false);
    }