Syntax issue- only assignment, call, increment, decrement, and new object expressions can be used as statement

I have a list of status effects afflicting the player, and I’m trying to iterate through the list, remove any effects that’ve expired, and reduce the timer on any effects still active:

void ApplyBuffs(Character character){
	//Iterate through buffs/debuffs, and apply them
	for (int i = 0; i < character.passiveEffects.Count; i++) {	//Iterate through list of passive effects, decrement timer, and remove effects that have expired
		if (character.passiveEffects_.permanent == false && character.passiveEffects*.duration > 0)*_

_ character.passiveEffects*.duration -= 1;
else*
character.passiveEffects*.Remove;
}
}_

_However, I’m getting an error on character.passiveEffects.Remove; , “Only assignment, call, increment, decrement, and new object expressions can be used as a statement”. The code for Remove, from my status effect class, is currently blank:*
public virtual void Remove (Character target){_

}
My intent, once this works, is to extend the status effect class for each specific debuff, and override Apply and Remove to add and remove whatever specific status effects I want, but I can’t see where my syntax is running into a wall here.

Remove is a method and not a data member.
Since “Remove” takes character as an argument, you should pass a Character type data in the method.

else
    Remove(character, i);


//Your method
public virtual void Remove(Character target, int i){
//Remove chracter.passiveEffects *here.*

}