本文整理汇总了C#中Character.GetSkills方法的典型用法代码示例。如果您正苦于以下问题:C# Character.GetSkills方法的具体用法?C# Character.GetSkills怎么用?C# Character.GetSkills使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Character
的用法示例。
在下文中一共展示了Character.GetSkills方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: GetSkillMenuList
public BattleMenuItem[] GetSkillMenuList(int type, Character character)
{
BattleMenuItem[] list = new BattleMenuItem[0];
if(this.addBack && this.backFirst)
{
list = ArrayHelper.Add(this.GetBackItem(), list);
}
ArrayList skills = new ArrayList();
SkillLearn[] s = character.GetSkills();
for(int i=0; i<s.Length; i++)
{
if(DataHolder.Skill(s[i].skillID).useInBattle &&
(this.combineSkills || DataHolder.Skill(s[i].skillID).skilltype == type))
{
skills.Add(s[i].skillID);
}
}
skills.Sort(new SkillNameSorter());
for(int i=0; i<skills.Count; i++)
{
SkillLearn sk = character.GetSkill((int)skills[i]);
if(sk != null)
{
if(DataHolder.Skill(sk.skillID).TargetSelf())
{
list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
new BattleAction(AttackSelection.SKILL, character,
character.battleID, sk.skillID, sk.GetLevel())), list);
}
else if(DataHolder.Skill(sk.skillID).TargetNone())
{
list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
new BattleAction(AttackSelection.SKILL, character,
BattleAction.NONE, sk.skillID, sk.GetLevel())), list);
list[list.Length-1].action.targetRaycast = DataHolder.Skill(sk.skillID).targetRaycast;
}
else if(DataHolder.Skill(sk.skillID).TargetSingleEnemy() &&
DataHolder.BattleControl().IsAutoUseOnTarget() &&
DataHolder.Skill(sk.skillID).InRange(character, DataHolder.BattleControl().partyTarget, sk.GetLevel()))
{
list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()),
new BattleAction(AttackSelection.SKILL, character,
BattleAction.PARTY_TARGET, sk.skillID, sk.GetLevel())), list);
}
else
{
list = ArrayHelper.Add(new BattleMenuItem(sk.GetContent(), sk.skillID, sk.GetLevel(), BattleMenu.SKILL, true,
DataHolder.Skill(sk.skillID).GetSkillCostString(character, sk.GetLevel()), null), list);
}
}
}
if(this.addBack && !this.backFirst)
{
list = ArrayHelper.Add(this.GetBackItem(), list);
}
return list;
}
示例2: Check
public bool Check(Character c)
{
this.lastAdd = this.add;
this.lastActive = this.active;
bool targetChange = false;
// add check
this.add = true;
if(this.action != null && (!this.action.InRange() || !this.action.TargetAlive()))
{
this.add = false;
}
if(this.action != null && this.action.RangeDifference())
{
targetChange = true;
}
// active check
this.active = true;
// blocked
if((BattleMenu.ATTACK == this.type && c.IsBlockAttack()) ||
(BattleMenu.SKILL == this.type && c.IsBlockSkills()) ||
(BattleMenu.ITEM == this.type && c.IsBlockItems()) ||
(BattleMenu.DEFEND == this.type && c.IsBlockDefend()) ||
(BattleMenu.ESCAPE == this.type && (c.IsBlockEscape() || !DataHolder.BattleSystem().canEscape)))
{
this.active = false;
}
// skill
else if(this.isTarget && BattleMenu.SKILL == this.type &&
this.id >= 0 && !DataHolder.Skill(this.id).CanUse(c, this.useLevel))
{
this.active = false;
}
// no skills
else if(!this.isTarget && BattleMenu.SKILL == this.type && c.GetSkills().Length == 0)
{
this.active = false;
}
// no items
else if(!this.isTarget && BattleMenu.ITEM == this.type && !GameHandler.HasItems())
{
this.active = false;
}
// active time checks
if(this.active && DataHolder.BattleSystem().IsActiveTime())
{
if(BattleMenu.ATTACK == this.type && this.isTarget &&
((!DataHolder.BattleSystem().attackEndTurn &&
c.usedTimeBar+DataHolder.BattleSystem().attackTimebarUse > DataHolder.BattleSystem().maxTimebar) ||
(DataHolder.BattleSystem().attackEndTurn && c.usedTimeBar > 0)))
{
this.active = false;
}
else if(BattleMenu.SKILL == this.type && this.isTarget && this.id >= 0 &&
((!DataHolder.Skill(this.id).level[this.useLevel].endTurn &&
c.usedTimeBar+DataHolder.Skill(this.id).level[this.useLevel].timebarUse > DataHolder.BattleSystem().maxTimebar) ||
(DataHolder.Skill(this.id).level[this.useLevel].endTurn && c.usedTimeBar > 0)))
{
this.active = false;
}
else if(BattleMenu.ITEM == this.type && this.isTarget &&
((!DataHolder.BattleSystem().itemEndTurn &&
c.usedTimeBar+DataHolder.BattleSystem().itemTimebarUse > DataHolder.BattleSystem().maxTimebar) ||
(DataHolder.BattleSystem().itemEndTurn && c.usedTimeBar > 0)))
{
this.active = false;
}
else if(BattleMenu.DEFEND == this.type &&
((!DataHolder.BattleSystem().defendEndTurn &&
c.usedTimeBar+DataHolder.BattleSystem().defendTimebarUse > DataHolder.BattleSystem().maxTimebar) ||
(DataHolder.BattleSystem().defendEndTurn && c.usedTimeBar > 0)))
{
this.active = false;
}
else if(BattleMenu.ESCAPE == this.type &&
((!DataHolder.BattleSystem().escapeEndTurn &&
c.usedTimeBar+DataHolder.BattleSystem().escapeTimebarUse > DataHolder.BattleSystem().maxTimebar) ||
(DataHolder.BattleSystem().escapeEndTurn && c.usedTimeBar > 0)))
{
this.active = false;
}
}
// should update check
return this.lastAdd != this.add || this.lastActive != this.active || targetChange;
}
示例3: BattleMenuList
public BattleMenuItem[] BattleMenuList(Character character)
{
BattleMenuItem[] list = new BattleMenuItem[0];
this.LoadIcons();
if(this.addBack && this.backFirst && DataHolder.BattleSystem().IsRealTime())
{
list = ArrayHelper.Add(this.GetBackItem(), list);
}
for(int i=0; i<this.order.Length; i++)
{
if(this.order[i] == BattleMenu.ATTACK && this.showAttack)
{
if(DataHolder.BattleControl().IsAutoUseOnTarget() &&
character.InAttackRange(DataHolder.BattleControl().partyTarget))
{
list = ArrayHelper.Add(new BattleMenuItem(
new GUIContent(this.attackName[GameHandler.GetLanguage()].ToString(), this.attackIcon),
-1, BattleMenu.ATTACK, true, "",
new BattleAction(AttackSelection.ATTACK, character, BattleAction.PARTY_TARGET, -1, 0)), list);
}
else
{
list = ArrayHelper.Add(new BattleMenuItem(
new GUIContent(this.attackName[GameHandler.GetLanguage()].ToString(), this.attackIcon),
-1, BattleMenu.ATTACK, true, ""), list);
}
}
else if(this.order[i] == BattleMenu.SKILL && this.showSkills)
{
SkillLearn[] skills = character.GetSkills();
if(this.combineSkills)
{
if(skills.Length > 0)
{
list = ArrayHelper.Add(new BattleMenuItem(
new GUIContent(this.skillName[GameHandler.GetLanguage()].ToString(), this.skillIcon),
-1, BattleMenu.SKILL, false, ""), list);
}
}
else
{
ArrayList types = new ArrayList();
for(int j=0; j<skills.Length; j++)
{
if(DataHolder.Skill(skills[j].skillID).useInBattle)
{
int st = DataHolder.Skill(skills[j].skillID).skilltype;
if(!types.Contains(st))
{
types.Add(st);
}
}
}
types.Sort(new SkillTypeSorter());
for(int j=0; j<types.Count; j++)
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.SkillTypes().GetContent(
(int)types[j]), (int)types[j], BattleMenu.SKILL, false, ""), list);
}
}
}
else if(this.order[i] == BattleMenu.ITEM && this.showItems)
{
if(this.combineItems)
{
list = ArrayHelper.Add(new BattleMenuItem(
new GUIContent(this.itemName[GameHandler.GetLanguage()].ToString(), this.itemIcon),
-1, BattleMenu.ITEM, false, ""), list);
}
else
{
ArrayList types = new ArrayList();
foreach(int key in GameHandler.Items().Keys)
{
if(DataHolder.Item(key).useInBattle)
{
int it = DataHolder.Item(key).itemType;
if(!types.Contains(it))
{
types.Add(it);
}
}
}
types.Sort(new ItemTypeSorter());
for(int j=0; j<types.Count; j++)
{
list = ArrayHelper.Add(new BattleMenuItem(DataHolder.ItemTypes().GetContent(
(int)types[j]), (int)types[j], BattleMenu.ITEM, false, ""), list);
}
}
}
else if(this.order[i] == BattleMenu.DEFEND && this.showDefend)
{
list = ArrayHelper.Add(new BattleMenuItem(
new GUIContent(this.defendName[GameHandler.GetLanguage()].ToString(), this.defendIcon),
-1, BattleMenu.DEFEND, false, ""), list);
}
else if(this.order[i] == BattleMenu.ESCAPE && this.showEscape)
//.........这里部分代码省略.........