use of pcgen.core.Skill in project pcgen by PCGen.
the class GlobalToSkillCostFacet method dataAdded.
@Override
public void dataAdded(DataFacetChangeEvent<CharID, PCClass> dfce) {
CharID id = dfce.getCharID();
PCClass cl = dfce.getCDOMObject();
DataSetID dsID = id.getDatasetID();
for (Skill sk : masterUsableSkillFacet.getSet(dsID)) {
add(id, cl, SkillCost.CROSS_CLASS, sk, masterUsableSkillFacet);
}
for (SkillCost cost : globalSkillCostFacet.getScopes(id)) {
for (Skill sk : globalSkillCostFacet.getSet(id, cost)) {
add(id, cl, cost, sk, globalSkillCostFacet);
}
}
for (SkillCost cost : globalAddedSkillCostFacet.getScopes(id)) {
for (Skill sk : globalAddedSkillCostFacet.getSet(id, cost)) {
add(id, cl, cost, sk, globalAddedSkillCostFacet);
}
}
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class ListSkillCostFacet method dataAdded.
/**
* Adds the SkillCost objects granted by CDOMObjects, as applied directly to
* a ClassSkillList, when a CDOMObject is added to a Player Character.
*
* Triggered when one of the Facets to which ListSkillCostFacet listens
* fires a DataFacetChangeEvent to indicate a CDOMObject was added to a
* Player Character.
*
* @param dfce
* The DataFacetChangeEvent containing the information about the
* change
*
* @see pcgen.cdom.facet.event.DataFacetChangeListener#dataAdded(pcgen.cdom.facet.event.DataFacetChangeEvent)
*/
@Override
public void dataAdded(DataFacetChangeEvent<CharID, CDOMObject> dfce) {
CDOMObject cdo = dfce.getCDOMObject();
CharID id = dfce.getCharID();
for (CDOMReference ref : cdo.getModifiedLists()) {
List<ClassSkillList> useList = new ArrayList<>();
for (Object list : ref.getContainedObjects()) {
if (list instanceof ClassSkillList) {
useList.add((ClassSkillList) list);
}
}
if (!useList.isEmpty()) {
Collection<CDOMReference<Skill>> mods = cdo.getListMods(ref);
for (CDOMReference<Skill> skRef : mods) {
for (AssociatedPrereqObject apo : (Iterable<AssociatedPrereqObject>) cdo.getListAssociations(ref, skRef)) {
SkillCost sc = apo.getAssociation(AssociationKey.SKILL_COST);
for (ClassSkillList csl : useList) {
for (Skill skill : skRef.getContainedObjects()) {
add(id, csl, sc, skill, cdo);
}
}
}
}
}
}
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class ListToSkillCostFacet method dataAdded.
@Override
public void dataAdded(ScopeFacetChangeEvent<CharID, PCClass, ClassSkillList> dfce) {
CharID id = dfce.getCharID();
PCClass pcc = dfce.getScope();
ClassSkillList skilllist = dfce.getCDOMObject();
for (Skill sk : listSkillCostFacet.getSet(id, skilllist, SkillCost.CLASS)) {
add(id, pcc, SkillCost.CLASS, sk, pcc);
}
for (Skill sk : listSkillCostFacet.getSet(id, skilllist, SkillCost.CROSS_CLASS)) {
add(id, pcc, SkillCost.CROSS_CLASS, sk, pcc);
}
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class ListToSkillCostFacet method dataRemoved.
@Override
public void dataRemoved(SubScopeFacetChangeEvent<ClassSkillList, SkillCost, Skill> dfce) {
CharID id = dfce.getCharID();
ClassSkillList skilllist = dfce.getScope1();
SkillCost cost = dfce.getScope2();
Skill sk = dfce.getCDOMObject();
for (PCClass cl : skillListFacet.getScopes(id)) {
if (skillListFacet.contains(id, cl, skilllist)) {
remove(id, cl, cost, sk, cl);
}
}
}
use of pcgen.core.Skill in project pcgen by PCGen.
the class LocalSkillCostFacet method dataAdded.
/**
* Adds the SkillCost objects granted by CDOMObjects, as applied directly to
* a PCClass, when a CDOMObject is added to a Player Character.
*
* Triggered when one of the Facets to which LocalSkillCostFacet listens
* fires a DataFacetChangeEvent to indicate a CDOMObject was added to a
* Player Character.
*
* @param dfce
* The DataFacetChangeEvent containing the information about the
* change
*
* @see pcgen.cdom.facet.event.DataFacetChangeListener#dataAdded(pcgen.cdom.facet.event.DataFacetChangeEvent)
*/
@Override
public void dataAdded(DataFacetChangeEvent<CharID, CDOMObject> dfce) {
CDOMObject cdo = dfce.getCDOMObject();
CharID id = dfce.getCharID();
PCClass owner;
if (cdo instanceof Domain) {
owner = domainFacet.getSource(id, (Domain) cdo).getPcclass();
} else if (cdo instanceof PCClassLevel) {
owner = (PCClass) cdo.get(ObjectKey.PARENT);
} else if (cdo instanceof PCClass) {
owner = (PCClass) cdo;
} else {
Logging.errorPrint(getClass().getSimpleName() + " was given " + cdo + " which is not an expected object type");
return;
}
for (CDOMReference<Skill> ref : cdo.getSafeListFor(ListKey.LOCALCSKILL)) {
for (Skill sk : ref.getContainedObjects()) {
add(id, owner, SkillCost.CLASS, sk, cdo);
}
}
for (CDOMReference<Skill> ref : cdo.getSafeListFor(ListKey.LOCALCCSKILL)) {
for (Skill sk : ref.getContainedObjects()) {
add(id, owner, SkillCost.CROSS_CLASS, sk, cdo);
}
}
}
Aggregations