Rusz Głową C# ;D polecam już nty raz ;P
static float SPELL_TIME(ATTACKS attacks)
{
switch(attacks)
{
case ATTACKS.ATTACK_MELEE:
case ATTACKS.BLUE_BALL:
case ATTACKS.NIGHTMARE_BALL:
case ATTACKS.THUNDERSTORM:
return 5.0f;
default:
return 1.0f;
}
}
static float SPELL_SLIDER_SPEED(ATTACKS attacks)
{
switch (attacks)
{
case ATTACKS.ATTACK_MELEE:
case ATTACKS.BLUE_BALL:
case ATTACKS.NIGHTMARE_BALL:
case ATTACKS.THUNDERSTORM:
return 3.0f;
default:
return 1.0f;
}
}
static int SPELL_BASE_DMG(ATTACKS attacks)
{
switch (attacks)
{
case ATTACKS.ATTACK_MELEE:
case ATTACKS.BLUE_BALL:
case ATTACKS.NIGHTMARE_BALL:
case ATTACKS.THUNDERSTORM:
default:
return 100;
}
}
using System;
using System.Collections.Generic;
using System.Reflection;
public enum AttackType
{
Melee,
BlueBall,
NightmareBall,
Thunderstorm
};
public struct Spell
{
public AttackType attackType;
public double time;
public double sliderSpeed;
public int baseDmg;
public Spell(AttackType attackType, double time, double sliderSpeed, int baseDmg)
{
this.attackType = attackType;
this.time = time;
this.sliderSpeed = sliderSpeed;
this.baseDmg = baseDmg;
}
}
public class Test
{
static T GetSpellProperty<T>(String name, Spell spell)
{
FieldInfo field = typeof(Spell).GetField(name);
return (T)(field.GetValue(spell));
}
public static void Main()
{
List<Spell> knownSpells = new List<Spell>();
knownSpells.Add(new Spell(AttackType.Melee, 1.0f, 0.5f, 20));
knownSpells.Add(new Spell(AttackType.BlueBall, 2.0f, 0.5f, 40));
knownSpells.Add(new Spell(AttackType.NightmareBall, 4.0f, 0.5f, 50));
Console.WriteLine(GetSpellProperty<int>("baseDmg", knownSpells[0]));
}
}
Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)
Zakładki