Exemple #1
0
//尝试给对象添加一个效果
func (self *EffectBase) PutOn(from interface{}, target effect.EffectCarrier) bool {
	//如果效果还没有对象产生
	if self.Target == nil {

		//判断接收对象是否可以放置本效果
		isTargetReceive := target.PutOnEffect(self.Holder, from)

		if isTargetReceive {
			self.PutOnTime = time.GetNow()
			self.From = from
			self.Target = target
			self.Alive = true
			return true
		} else {
			//效果不被对方接收(比如:可能对方在效果 OnBeforePutOn 事件中,被其他效果取消了)
			return false
		}

	} else {
		//效果已经被附加过了,不能被重新附加
		return false
	}
}