public function addDerangement(RulebookDerangement $derangement, $description = null) { $derangementRecord = CharacterDerangement::character($this->character_id)->version($this->version)->where('derangement_id', $derangement->id)->where('bought_off', false)->first(); if (!$derangementRecord) { $derangementRecord = $this->createNewRecord("CharacterDerangement"); $derangementRecord->derangement_id = $derangement->id; if ($description && strlen($description) > 0) { $derangementRecord->description = $description; } if ($this->editingAsStoryteller() || !$this->isNewCharacter()) { $derangementRecord->lost_points += 2; } $derangementRecord->save(); } $this->touchedRecords["CharacterDerangement"][] = $derangementRecord->id; }
public function derangements($version = -1, $ignoreBoughtOff = false) { if ($version == -1) { $version = $this->activeVersion(); } if ($ignoreBoughtOff) { return CharacterDerangement::character($this->id)->version($version); } return CharacterDerangement::character($this->id)->where('bought_off', false)->version($version); }