예제 #1
0
 public Specialty(
     AbstractSubTraitContainer container,
     ITraitReference reference,
     String specialtyName,
     ITraitContext context) {
   super(
       new TraitRules(
           new TraitType("Specialty"), // $NON-NLS-1$
           SimpleTraitTemplate.createStaticLimitedTemplate(0, 3),
           context.getLimitationContext()),
       context,
       new FriendlyValueChangeChecker());
   this.container = container;
   this.reference = reference;
   this.subTraitName = specialtyName;
 }
 // TODO: Available dots limit max. value
 public SpiritFormAttribute(IGenericTrait baseTrait, final ICharacterModelContext charContext) {
   ITraitContext context = charContext.getTraitContext();
   ITraitTemplate template = SimpleTraitTemplate.createStaticLimitedTemplate(1, 12);
   TraitRules traitRules =
       new TraitRules(baseTrait.getType(), template, context.getLimitationContext());
   IValueChangeChecker incrementChecker =
       new IValueChangeChecker() {
         @Override
         public boolean isValidNewValue(int value) {
           return value != spiritTrait.getCurrentValue()
               && !charContext.getBasicCharacterContext().isExperienced();
         }
       };
   spiritTrait = new DefaultTrait(traitRules, context, incrementChecker);
   spiritTrait.addCurrentValueListener(
       new IIntValueChangedListener() {
         @Override
         public void valueChanged(int newValue) {
           SpiritFormAttribute.this.newValue = newValue;
         }
       });
 }