本文整理汇总了C#中Actions.Get_Damage方法的典型用法代码示例。如果您正苦于以下问题:C# Actions.Get_Damage方法的具体用法?C# Actions.Get_Damage怎么用?C# Actions.Get_Damage使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Actions
的用法示例。
在下文中一共展示了Actions.Get_Damage方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Do_Area_Effect
public void Do_Area_Effect(List<Vector3> squares, Characters attacker, Actions act)
{
GameObject instance;
instance = Instantiate(effects[1], act._area_start, Quaternion.identity) as GameObject;
instance.transform.SetParent(effectholder);
Vector3 dir = (act._area_target - act._area_start);
dir.Normalize ();
float ang = Vector3.Angle (new Vector3(1,0,0), dir);
if (dir.y < 0)
ang *= -1;
instance.transform.Translate (dir/2);
instance.transform.Rotate ( new Vector3 (0, 0, ang) );
effecttime = 30;
// write log
Append_Log (attacker.charname + " uses " + act._name);
// roll damage
int dmg = Dice.roll (act.Get_Damage());
disp_dmgpos.Clear();
disp_dmgstr.Clear();
// Get affected target
foreach (Vector3 pos in squares) {
int target = map.Get_Char_At (pos);
if (target>0){
int sv =characters[target].Roll_Save (act._save_type);
int dd = sv < act._save_dc ? dmg : dmg/2;
disp_dmgpos.Add(pos);
disp_dmgstr.Add (dd.ToString());
// "Char rolls reflex save (20). Pass! Take 10 damage!"
string passfail=sv < act._save_dc ? "Fail" : "Pass";
Append_Log(characters[target].charname + " rolls " + Parser.Get_Save_Name(act._save_type) + " save ("
+ sv + "). " + passfail + "! Takes " + dd + " damage!");
}
}
showdmg = _dmgshowtime + effecttime;
}
示例2: Do_Attack
/// <summary>
/// Perform an attack action
/// </summary>
/// <param name="pos">Position of the attack target</param>
/// <param name="attacker">The attacker</param>
/// <param name="act">Action used for this attack</param>
public void Do_Attack(Vector3 pos, Characters attacker, Actions act)
{
int roll = Dice.roll ("1d20");
bool iscrit = false;
if (roll >= act._atk_crit_num) {
iscrit=true;
}
int atk = roll + act._atk_bonus;
string dmg_str = act.Get_Damage (iscrit);
int dmg = Dice.roll(dmg_str);
// Get attack target
int target = map.Get_Char_At(pos);
// " A attack B with weapon, roll (1d20 + N) = M "
string log = attacker.charname + " attack " + characters[target].charname + " with " + act._name;
log += ", roll 1d20 (" + roll + ") +" + act._atk_bonus + " = " + atk;
Append_Log (log);
log = " ";
// A natural 20 always hit, and 1 always miss
if (roll == 20)
atk = 1000;
else if (roll == 1)
atk = -1000;
// Check hit and damage
int? dmgtaken = characters[target].Get_Hit(atk, dmg);
disp_dmgpos.Clear();
disp_dmgstr.Clear();
disp_dmgpos.Add(pos);
if (dmgtaken == null)
{
log += " Miss!";
disp_dmgstr.Add("Miss");
}
else
{
disp_dmgstr.Add(dmgtaken.ToString());
if (iscrit) log+=" Crit!!";
else log+=" Hit!";
log += " Deal " + dmg_str + " = " + dmgtaken + " damage.";
}
showdmg = _dmgshowtime;
Show_effect(new Vector3(pos.x, pos.y, 0), 0,_dmgshowtime);
Append_Log(log);
}