public static function build($assoc) { $model = parent::build($assoc); // Search for existing properties $request = new \Data\Request(); $request->Filter[] = new \Data\Filter("object_id", $model->object_id); $props = GameObjectPropertyModel::find($request); $properties = array(); foreach ($props as $property) { $properties[$property->property] = $property; } $model->properties = self::setProperties($model, $model->properties, $properties); // Search for existing ownerships $model->ownerships = GameObjectOwnershipModel::find($request); return $model; }
public function own($action) { $this->check($this->victim, "victim"); $request = new \Data\Request(); $request->Filter[] = new \Data\Filter("subject_id", $this->victim->object_id); $ownership = \GameObject\Model\GameObjectOwnershipModel::findOne($request); if ($ownership) { if ($ownership->object_id === $this->actor->object_id) { return ["success" => true]; } else { return ["success" => false, "error" => "Object is already owned"]; } } else { $ownership = \GameObject\Model\GameObjectOwnershipModel::build(["object_id" => $this->actor->object_id, "subject_id" => $this->victim->object_id]); $ownership->save(); return ["success" => true]; } }