package com.rpsg.rpg.object.item;
import com.badlogic.gdx.utils.JsonValue;
import com.rpsg.rpg.object.prop.Props;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
/**
* 道具/符卡的效果<br>
* <br>
* 在GDX-RPG中,所有的道具都拥有一个{@link EffectableItem#effect 效果}变量,顾名思义,他用来描述该道具有什么用。<br>
* 其中,每个效果包含了一个永久属性的map,如map里有{hp:30},则代表使用该物品+30血,当然实际上会比这个复杂,具体请看代码。<br>
* 随后,还会有一个数组,里面包含了该物品所提供的buff,该buff仅仅能在战斗时候生效。
*/
public class Effect implements Serializable{
private static final long serialVersionUID = 1L;
/**该道具/符卡提供的永久属性*/
public Props prop;
/**该道具/符卡提供的buff,在非战斗时候使用,本属性无用*/
public List<EffectBuff> buff = new ArrayList<>();
public Effect(JsonValue value) {
prop = value.has("prop") ? Props.fromJSON(value.get("prop")) : null;
if(value.has("buff"))
for(JsonValue ebuff : value.get("buff"))
buff.add(EffectBuff.fromJSON(ebuff));
}
}