用php写一个游戏的技能: 当攻击者攻击目标时80%概率附加眩晕状态3回合
时间: 2023-11-27 12:54:06 浏览: 32
假设我们有两个角色:攻击者和目标,他们都有以下属性:
```php
class Character {
public $name;
public $health;
public $attack;
}
```
其中,`name`表示角色的名字,`health`表示角色的生命值,`attack`表示角色的攻击力。
现在,我们需要为攻击者添加一个技能,让他有80%的概率给目标附加眩晕状态。
```php
class StunSkill {
public function apply(Character $attacker, Character $target) {
$chance = rand(1, 100);
if ($chance <= 80) {
// 附加眩晕状态
$target->stun = 3;
echo "{$attacker->name}使用了眩晕技能,{$target->name}被眩晕了!\n";
} else {
echo "{$attacker->name}使用了眩晕技能,但是没有生效!\n";
}
}
}
```
在这个技能中,我们使用了`rand()`函数来生成一个1到100之间的随机数,如果这个随机数小于等于80,就给目标附加眩晕状态,否则什么也不做。同时,我们为目标增加了一个`stun`属性,表示眩晕状态的剩余回合数。
现在,我们可以让攻击者使用这个技能:
```php
$attacker = new Character();
$attacker->name = '小明';
$attacker->health = 100;
$attacker->attack = 20;
$target = new Character();
$target->name = '小红';
$target->health = 100;
$target->attack = 15;
$skill = new StunSkill();
$skill->apply($attacker, $target);
```
这里我们创建了一个攻击者和一个目标,然后使用了`StunSkill`技能。运行结果可能如下:
```
小明使用了眩晕技能,小红被眩晕了!
```
如果运气不好,可能会得到以下结果:
```
小明使用了眩晕技能,但是没有生效!
```