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); }
// 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>(); }
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); }